欢迎访问宙启技术站
智能推送

Java中的文件IO操作:如何使用File类及其相关函数?

发布时间:2023-06-17 06:17:17

Java是一门面向对象的编程语言,它提供了一套强大而易于使用的文件访问API,使得文件的读写变得简单易用。Java的文件IO操作主要涉及到File类以及其相关函数,本文将会详细介绍如何使用File类及其相关函数来进行文件IO操作。

一、创建File类实例

Java中的File类用于表示文件或目录,实例化File类可以使用以下两种方式:

1. 构造函数创建

使用File类的构造函数可以创建一个File对象。File类提供了多个构造函数来创建File对象,其中常用的有:

- File(String pathname)

使用给定的路径名称创建File对象。路径名称可以是绝对路径或者相对路径。

- File(String parent, String child)

先使用parent字符串创建一个File对象,然后在其之上附加child字符串,从而创建一个新的File对象。

- File(File parent, String child)

在parent File对象下附加child字符串,从而创建一个新的File对象。

下面是使用上述构造函数创建File实例的示例代码:

File file = new File("D:/work/test.txt");//绝对路径

File file2 = new File("/work/test.txt");//绝对路径

File file3 = new File("work/test.txt");//相对路径

File file4 = new File("D:\\work", "test.txt");//使用字符串构造方法

File file5 = new File(new File("work"), "test.txt");//使用File对象构造方法

2. 直接指定File对象

可以直接使用File对象来创建新的File对象,如下所示:

File file = new File("D:/work");

File file2 = new File(file, "test.txt");

这个例子中,首先创建一个File对象,然后使用该对象作为父目录来创建一个新的File对象。

二、文件的基本操作

1. 创建文件

使用File类中的createNewFile()方法可以创建一个新的文件。代码如下:

try {

File file=new File("D:/work/newfile.txt");

boolean result=file.createNewFile();

System.out.println(result ? "创建成功" : "文件已存在");

} catch (IOException e) {

e.printStackTrace();

}

2. 删除文件

使用File类的delete()方法可以删除指定的文件。代码如下:

File file=new File("D:/work/newfile.txt");

if(file.exists()){

boolean result=file.delete();

System.out.println(result ? "删除成功" : "删除失败");

}else{

System.out.println("文件不存在");

}

3. 创建目录

使用File类的mkdir()方法可以创建一个新的目录。代码如下:

File dir=new File("D:/work/newdir");

if(!dir.exists()){

boolean result=dir.mkdir();

System.out.println(result ? "创建成功" : "创建失败");

}else{

System.out.println("目录已存在");

}

4. 删除目录

File类的delete()方法同样可以删除目录,但是需要注意的是,只有当目录下的所有子目录和文件均已被删除后,此目录才能成功删除。代码如下:

File dir=new File("D:/work/newdir");

if(dir.exists()){

boolean result=dir.delete();

System.out.println(result ? "删除成功" : "删除失败");

}else{

System.out.println("目录不存在");

}

三、文件的读写操作

1. 文件读取

对于读取文件,Java提供了三种方式:

- 使用BufferedReader类

使用BufferedReader类可以按行读取文件内容。代码如下:

File file=new File("D:/work/test.txt");

try {

BufferedReader br=new BufferedReader(new FileReader(file));

String line="";

while((line=br.readLine())!=null){

System.out.println(line);

}

} catch (IOException e) {

e.printStackTrace();

}

- 使用Scanner类

使用Scanner类可以读取文件内容,处理方式类似于从控制台输入。代码如下:

File file=new File("D:/work/test.txt");

try {

Scanner scanner=new Scanner(file);

while(scanner.hasNext()){

System.out.println(scanner.next());

}

scanner.close();}

catch (IOException e) {

e.printStackTrace();

}

- 使用FileReader类

使用FileReader类可以一次读取一个字符。代码如下:

File file=new File("D:/work/test.txt");

try {

FileReader reader = new FileReader(file);

int character;

while ((character = reader.read()) != -1) {

System.out.print((char) character);

}

reader.close();} catch (IOException e) {

e.printStackTrace();

}

2. 文件写入

对于文件写入,Java提供了两种方式:

- 使用FileWriter类

使用FileWriter类可以将数据写入文件。代码如下:

File file=new File("D:/work/test.txt");

try {

FileWriter writer=new FileWriter(file);

writer.write("Hello World

");

writer.write("This is a test");

writer.close();}

catch (IOException e) {

e.printStackTrace();

}

- 使用PrintWriter类

使用PrintWriter类可以以指定格式向文件中写入数据。代码如下:

File file=new File("D:/work/test.txt");

try {

PrintWriter writer=new PrintWriter(file);

writer.printf("My name is %s and I am %d years old.", "Tom", 20);

writer.close();}

catch (IOException e) {

e.printStackTrace();

}

四、总结

本文介绍了Java中的文件IO操作以及如何使用File类及其相关函数来进行文件读写操作。了解了这些基本操作,你就可以在对文件进行读写操作时更加得心应手了。其中,针对某一特定文件或目录不可进行操作的情况,可以在后面用一个try-catch块捕获异常并进行相应处理。