Java中的IO函数如何实现文件的读写操作?
Java中的IO函数实现了对文件的读写操作,主要可以分为字节流和字符流两种形式。
1. 字节流(Byte Stream):
字节流以字节为单位进行读写操作,适用于处理二进制文件或者字节流形式的文本文件。主要有InputStream和OutputStream两个抽象类,可以通过它们的子类进行具体的文件读写操作。
- FileInputStream类用于打开一个输入流以从文件中读取字节。
- FileOutputStream类用于打开一个输出流以向文件中写入字节。
示例代码如下所示:
// 文件读取
try (FileInputStream fis = new FileInputStream("test.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
// 文件写入
try (FileOutputStream fos = new FileOutputStream("test.txt")) {
String str = "Hello World!";
fos.write(str.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
2. 字符流(Character Stream):
字符流以字符为单位进行读写操作,适用于处理文本文件。主要有Reader和Writer两个抽象类,可以通过它们的子类进行具体的文件读写操作。
- FileReader类用于打开一个输入字符流以读取文件中的字符。
- FileWriter类用于打开一个输出字符流以写入文件中的字符。
示例代码如下所示:
// 文件读取
try (FileReader fr = new FileReader("test.txt")) {
int data;
while ((data = fr.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
// 文件写入
try (FileWriter fw = new FileWriter("test.txt")) {
String str = "Hello World!";
fw.write(str);
} catch (IOException e) {
e.printStackTrace();
}
无论是字节流还是字符流,Java的IO函数提供了丰富的操作方法,可以读取、写入和操作文件的各种属性。此外,还可以使用缓冲流(Buffered Stream)对IO操作进行缓冲,提高读写性能。同时,Java的IO函数还提供了各种辅助类和方法,例如对目录的操作、对文件属性的操作等。通过合理使用IO函数,可以实现对文件的各种读写操作,满足不同需求。
