java缓冲流BufferWriter的原理跟提高效率原因
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java缓冲流BufferWriter的原理跟提高效率原因相关的知识,希望对你有一定的参考价值。
不带缓冲的流的工作原理:它读取到一个字节/字符,就向用户指定的路径写出去 读一个写一个 所以就慢了带缓冲的流的工作原理:读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次性写出去,从而提高了工作效率
举个现实生活中的例子:假设你是一个快递员,不带缓冲的流就像快递公司给你一份快递你就跑一次,而带缓冲的流就像快递公司给你一份快递,你先不去,等攒攒多一起送,试想一下,是不是效率提高了? 参考技术A 使用BufferedWriter写入文本时不用将文本转换成字节数组,直接整行整行的写入,大大提供了写入效率。
在下面的示例代码中向文件中写入两行文本。
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
/**
*
* @author gdb
*/
public class Main
/**
* Prints some data to a file using a BufferedWriter
*/
public void writeToFile(String filename)
BufferedWriter bufferedWriter = null;
try
//Construct the BufferedWriter object
bufferedWriter = new BufferedWriter(new FileWriter(filename));
//Start writing to the output stream
bufferedWriter.write("Writing line one to file");
bufferedWriter.newLine();
bufferedWriter.write("Writing line two to file");
catch (FileNotFoundException ex)
ex.printStackTrace();
catch (IOException ex)
ex.printStackTrace();
finally
//Close the BufferedWriter
try
if (bufferedWriter != null)
bufferedWriter.flush();
bufferedWriter.close();
catch (IOException ex)
ex.printStackTrace();
/**
* @param args the command line arguments
*/
public static void main(String[] args)
new Main().writeToFile("myFile.txt");
执行上述代码后文件中的文本如下:
Writing line one to file
Writing line two to file
注意使用BufferedWriter一定要在finally中flush()并close().
以上是关于java缓冲流BufferWriter的原理跟提高效率原因的主要内容,如果未能解决你的问题,请参考以下文章
Buffer Stream- BufferReader & BufferWriter