Java输入输出流函数:如何读写文件
Java 的输入输出流是对标准输入输出(stdin 和 stdout)的封装,可以通过它们实现与文件,网络,内存等各种设备的交互,方便读写数据。本文将介绍如何使用 Java 输入输出流函数读写文件。
输入输出流分类
Java 中的输入输出流主要有四种类型:
1. 字节流:以字节为单位读写数据。InputStream 和 OutputStream 是它们的抽象基类。
2. 字符流:以字符为单位读写数据。Reader 和 Writer 是它们的抽象基类。
3. 字节缓冲流:缓存字节流,提高读写性能。BufferedInputStream 和 BufferedOutputStream 是它们的具体实现类。
4. 字符缓冲流:缓存字符流,提高读写性能。BufferedReader 和 BufferedWriter 是它们的具体实现类。
文件读写
我们来看一个从文件中读取数据,并保存到文件中的例子:
import java.io.*;
public class FileReadWriteDemo {
public static void main(String[] args) {
String filePath = "input.txt";
String resultFilePath = "output.txt";
try {
FileInputStream fileInputStream = new FileInputStream(filePath);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
// 从文件中读取数据
byte[] buffer = new byte[1024];
int length = bufferedInputStream.read(buffer);
String data = new String(buffer, 0, length);
System.out.println("从文件" + filePath + "中读取的数据:");
System.out.println(data);
// 将数据保存到文件
FileOutputStream fileOutputStream = new FileOutputStream(resultFilePath);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
byte[] dataBytes = data.getBytes();
bufferedOutputStream.write(dataBytes);
// 关闭流
bufferedInputStream.close();
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个例子中,我们首先使用 FileInputStream 打开要读取的文件,并将其传给 BufferedInputStream 进行缓存,然后使用 read 方法读取文件中的数据,得到一个 byte 数组。我们再将 byte 数组转换成字符串,打印出来。
接着,我们使用 FileOutputStream 打开要输出的文件,并将其传给 BufferedOutputStream 进行缓存,最后使用 write 方法将数据流写入文件中。
这里我们用了 BufferedInputStream 和 BufferedOutputStream 去实现读写文件,相比未使用缓存的 InputStream 和 OutputStream,速度更快,效率更高。
总结
Java 的输入输出流提供了一种便捷的方式来进行数据读写操作。通过输入输出流,我们可以轻松处理文件、网络和内存等设备,还可以使用缓存流可以提高读写性能。同时,我们还需要注意适时关闭输入输出流,避免资源浪费和数据丢失。
