在Java中,缓存流(Buffered Stream)通常用于提高I/O操作的效率。缓存流通过在内部缓冲一定量的数据来减少实际I/O操作的次数,从而提高性能。Java提供了两种主要的缓存流:BufferedInputStream
和 BufferedOutputStream
。
以下是使用缓存流的一般步骤:
FileInputStream
或 FileOutputStream
),然后将其传递给缓存流对象的构造函数。new BufferedInputStream(inputStream)
。flush()
方法来刷新缓存流。close()
方法来关闭流。为了确保所有剩余的数据都被写入原始流,建议在关闭 BufferedOutputStream
之前调用 flush()
方法。下面是一个简单的示例,演示了如何使用 BufferedInputStream
和 BufferedOutputStream
来读取和写入文件:
import java.io.*;
public class BufferedStreamExample {
public static void main(String[] args) {
String inputFilePath = "input.txt";
String outputFilePath = "output.txt";
try (BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(inputFilePath));
BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFilePath))) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
System.out.println("Data copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用 BufferedInputStream
来读取 input.txt
文件,并使用 BufferedOutputStream
将数据写入 output.txt
文件。通过使用缓存流,我们可以提高文件复制的效率。