在Java写文件中,通常会使用FileOutputStream
和FileWriter
, FileWriter
只能写文本文件。FileOutputStream
也经常结合BufferedOutPutStream
。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的三种不同方式。
转自
以下结果取几次不同的数据进行比较:
1、当count=1000
时,即写文件1000行的时候,写出的文件大小为25KB
:
2、当count=10000
时,即写文件10000行的时候,写出的文件大小为245KB
:
3、当count=100000
时,即写文件100000行的时候,写出的文件大小为2442KB
:
4、当count=1000000
时,即写文件1000000行的时候,写出的文件大小为24415KB
:
由以上数据可以看到,如果不用缓冲流BufferedOutputStream
,FileOutputStream
写文件的性能不是很好。当写百万行的文件的时候,FileOutputStream
比FileWriter
要慢五千多毫秒,BufferedOutputStream
比FileWriter
要慢十几秒。