Java 可以通过缓冲流来读写文件,缓冲流会将 I/O 操作的数据缓存起来,通过缓存操作可以减少访问磁盘次数,进而提升程序的性能。下面是利用缓冲流读写文件的步骤:
-
创建输入流对象。首先需要创建一个文件输入流对象(FileInputStream),再把它作为参数传给缓冲输入流(BufferedInputStream)的构造方法,从而创建一个缓冲输入流对象(例如:BufferedInputStream bufIn = new BufferedInputStream(new FileInputStream("input.txt"))。
-
创建输出流对象。同样地,需要创建一个输出流对象(FileOutputStream),再利用这个输出流对象创建一个缓冲输出流对象(BufferedOutputStream) (例如:BufferedOutputStream bufOut = new BufferedOutputStream(new FileOutputStream("output.txt"))。
-
读写文件。通过缓存流对象的read()和write()方法可以读写文件内容,例如:
BufferedInputStream bufIn = new BufferedInputStream(new FileInputStream("input.txt"));
BufferedOutputStream bufOut = new BufferedOutputStream(new FileOutputStream("output.txt"));
byte[] buffer = new byte[1024];
int len;
while ((len = bufIn.read(buffer)) != -1) {
bufOut.write(buffer, 0, len);
}
bufIn.close();
bufOut.close();
上述代码将输入文件"input.txt"中的所有内容都复制到了输出文件"output.txt"中。
下面再举一个缓存流用于文件压缩的示例:
BufferedInputStream bufIn = new BufferedInputStream(new FileInputStream("input.txt"));
ZipOutputStream zipOut = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream("output.zip")));
zipOut.putNextEntry(new ZipEntry("input.txt"));
byte[] buffer = new byte[1024];
int len;
while ((len = bufIn.read(buffer)) != -1) {
zipOut.write(buffer, 0, len);
}
bufIn.close();
zipOut.close();
上述代码会将输入文件"input.txt"进行压缩,压缩后的文件名为"output.zip",其中"input.txt"被压缩在"output.zip"文件中,并设置了一个ZipEntry来指定"input.txt"在zip文件中的名字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 如何利用缓冲流读写文件 - Python技术站