Java中的文件读取和写入函数如何使用?
在Java中,有许多不同的方法可以进行文件读取和写入。其中,主要有以下几种方法:
1. 使用FileReader/FileWriter类:这两个类是Java中常用的读取和写入文本文件的类。FileReader类用于读取字符流,FileWriter类用于写入字符流。使用这两个类的方法非常简单,只需要创建一个相应的对象,然后使用read()/write()等方法进行操作即可。以下是一个简单的使用示例:
// FileReader 示例
try (FileReader reader = new FileReader("example.txt")) {
int data = reader.read();
while (data != -1) {
System.out.print((char) data);
data = reader.read();
}
} catch (IOException e) {
e.printStackTrace();
}
// FileWriter 示例
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write("Hello World");
} catch (IOException e) {
e.printStackTrace();
}
注意,在使用FileReader/FileWriter类时,要注意编码格式的设置。默认情况下,Java使用的是操作系统的默认编码格式,如果需要使用其他编码格式,需要指定相应的编码。
2. 使用BufferedReader/BufferedWriter类:这两个类是FileReader/FileWriter的升级版,提供了缓存读写的功能,可以提高读写效率。使用方法类似,只需要在创建对象时,将FileReader/FileWriter对象作为参数传入即可。示例代码如下:
// BufferedReader 示例
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
// BufferedWriter 示例
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
writer.write("Hello World");
writer.newLine();
writer.write("Java is fun");
} catch (IOException e) {
e.printStackTrace();
}
注意,在使用BufferedReader/BufferedWriter类时,要注意使用readLine()和write()方法时,需要加上换行符。
3. 使用Scanner/PrintWriter类:这两个类也是常用的读取和写入文本文件的类。Scanner类可以将文件中的数据读取为基本数据类型或字符串,PrintWriter类可以将数据写入文件中。以下是一个读取和写入文件的示例代码:
// Scanner 示例
try (Scanner scanner = new Scanner(new File("example.txt"))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// PrintWriter 示例
try (PrintWriter writer = new PrintWriter(new FileWriter("example.txt"))) {
writer.println("Hello World");
writer.println("Java is fun");
} catch (IOException e) {
e.printStackTrace();
}
注意,在使用PrintWriter类写入文件时,需要使用println()方法,这样可以自动在每一行的末尾加上换行符。
4. 使用InputStream/OutputStream类:如果需要读写二进制文件,例如图片、音频等文件,就需要使用InputStream/OutputStream类。以下是一个读取和写入二进制文件的示例代码:
// InputStream 示例
try (InputStream input = new FileInputStream("example.png")) {
byte[] buffer = new byte[1024];
int bytesRead = input.read(buffer);
while (bytesRead != -1) {
// 处理读取到的数据
bytesRead = input.read(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
// OutputStream 示例
try (OutputStream output = new FileOutputStream("example.png")) {
byte[] data = ...; // 从其他地方得到数据
output.write(data);
} catch (IOException e) {
e.printStackTrace();
}
由于是读写二进制数据,所以需要使用字节数组来保存数据,并使用read()/write()等方法进行读写。
综上所述,Java中的文件读取和写入函数使用非常简单,只需要了解不同类的功能和调用方式,就可以轻松地读取和写入文件,满足不同的需求。
