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

Java中的文件读写:File类和FileReader/FileWriter类

发布时间:2023-06-12 05:35:48

在Java中,文件操作是一个非常基础而又常见的操作。Java提供了许多类和方法用于文件的读写操作,本文将重点介绍File类和FileReader、FileWriter类。

1. File类

File类是Java中操作文件的基础类之一,它可以表示文件或者文件夹(目录)。File类中有很多方法可以帮助我们操作文件,例如创建文件、删除文件、判断文件是否存在等等。

在使用File类时,我们需要实例化一个File对象。有两种方式来创建File对象:

1)传入文件路径

File file = new File("C:/Users/Administrator/Desktop/test.txt");

2)传入文件夹路径和文件名

File file = new File("C:/Users/Administrator/Desktop", "test.txt");

File类中的常用方法如下:

1)创建文件

createNewFile()方法用于创建一个空文件,如果文件已经存在,则不会创建。例如:

File file = new File("C:/Users/Administrator/Desktop/test.txt");

if (file.createNewFile()) {

 System.out.println("文件创建成功!");

} else {

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

}

2)删除文件

delete()方法用于删除文件或目录,如果删除成功,则返回true;否则返回false。例如:

File file = new File("C:/Users/Administrator/Desktop/test.txt");

if (file.delete()) {

 System.out.println("文件删除成功!");

} else {

 System.out.println("文件删除失败。");

}

3)判断文件是否存在

exists()方法用于判断文件是否存在,如果存在则返回true;否则返回false。例如:

File file = new File("C:/Users/Administrator/Desktop/test.txt");

if (file.exists()) {

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

} else {

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

}

4)获取文件大小

length()方法用于获取文件大小。例如:

File file = new File("C:/Users/Administrator/Desktop/test.txt");

System.out.println("文件大小为:" + file.length() + " bytes");

5)遍历文件夹

list()方法和listFiles()方法用于遍历文件夹中的文件和子文件夹。例如:

File dir = new File("C:/Users/Administrator/Desktop");

String[] files = dir.list(); // 获取文件列表

for (String file : files) {

 System.out.println(file);

}

File[] files = dir.listFiles(); // 获取文件对象数组

for (File file : files) {

 if (file.isDirectory()) { // 如果是目录则输出目录名

 System.out.println("目录:" + file.getName());

 } else {

 System.out.println("文件:" + file.getName() + ",大小:" + file.length() + " bytes");

 }

}

2. FileReader和FileWriter类

FileReader和FileWriter类不仅可以读写文本文件,还可以处理其他类型的文件,例如音视频文件。它们的使用非常简单,只需要实例化后调用相应的方法。

FileReader类的常用方法如下:

1)读取单个字符

read()方法用于读取单个字符,返回int类型的值,如果没有可读的字符,则返回-1。例如:

FileReader reader = new FileReader("C:/Users/Administrator/Desktop/test.txt");

int c;

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

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

}

reader.close();

2)读取字符数组

read(char[] cbuf)方法用于读取字符数组,返回读取的字符数,如果没有可读的字符,则返回-1。例如:

FileReader reader = new FileReader("C:/Users/Administrator/Desktop/test.txt");

char[] c = new char[1024];

int len;

while ((len = reader.read(c)) != -1) {

 System.out.print(new String(c, 0, len));

}

reader.close();

3)跳过指定字符

skip(long n)方法用于跳过指定字符数。例如:

FileReader reader = new FileReader("C:/Users/Administrator/Desktop/test.txt");

reader.skip(10); // 跳过前10个字符

int c;

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

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

}

reader.close();

FileWriter类的常用方法如下:

1)写入单个字符

write(int c)方法用于写入单个字符,例如:

FileWriter writer = new FileWriter("C:/Users/Administrator/Desktop/test.txt");

writer.write('H'); // 写入单个字符

writer.write('e'); // 写入单个字符

writer.write('l'); // 写入单个字符

writer.write('l'); // 写入单个字符

writer.write('o'); // 写入单个字符

writer.close();

2)写入字符数组

write(char[] cbuf)方法用于写入字符数组,例如:

FileWriter writer = new FileWriter("C:/Users/Administrator/Desktop/test.txt");

String str = "Hello World!";

writer.write(str.toCharArray()); // 写入字符数组

writer.close();

3)写入字符串

write(String str)方法用于写入字符串,例如:

FileWriter writer = new FileWriter("C:/Users/Administrator/Desktop/test.txt");

String str = "Hello World!";

writer.write(str); // 写入字符串

writer.close();

4)追加内容

FileWriter的构造方法中有一个append参数,当该参数为true时,表示追加内容。例如:

FileWriter writer = new FileWriter("C:/Users/Administrator/Desktop/test.txt", true);

writer.write("Java is good!"); // 追加内容

writer.close();

以上就是关于Java文件读写的介绍,其中File类和FileReader/FileWriter类是经常使用的类。在实际开发过程中,文件的读写经常用于配置文件的读取和处理、日志文件的记录等场合。当涉及到大量数据时,建议使用字节流进行操作,效率会更高。