一些小技巧。

一、知识点

(1)FileOutputStream fos = new FileOutputStream(b);

如果文件不存在,直接创建。如果文件存在,那就删除后重新创建。

FileOutputStream fos = new FileOutputStream(b,true);的true参数可以在源文件基础上进行追加

(2)flush()是什么?

涉及到缓冲区的问题.

java在使用流时,都会有一个缓冲区,按一种它认为比较高效的方法来发数据:把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过去,而不是分开一次一次地发。

flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满。

所以在用流的时候,如果没有用flush()这个方法,很多情况下会出现流的另一边读不到数据的问题,特别是在数据特别小的情况下。

我的理解:

输出流类似于一根管道,输出的时候先放到管道里,然后管道满了存到介质上(硬盘或其他地方),当我们输出完后管道里面可能还有剩余,就用flush()清空管道即全部存到介质上。

好象java默认的缓冲区是8kb,就是说只有每填满8kb才会提交一次,当少于这个值时就不会提交。所以最后为防止有未提交数据就flush()一下,强行提交剩余数据。

也就是说,一般输出流关闭之前要使用这个方法。

(3)关于bufferReader的方法

readline()不会自动换行。

(4)什么是printWriter?

printwriter是向文本输出流打印对象的格式化表示形式。可以将指定字符添加到此writer。

二、总结

记录一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注