java写文件时,输出不完整的原因以及解决方法

在java的IO体系中,写文件通常会用到下面语句

 

BufferedWriter bo=new BufferedWriter(new FileWriter("sql语句.txt"));

用到这个的时候一定不能忘了他的伴侣代码。。

bo.close();

或者

bo.flush();

实际上,FileWriter在写文件时,会把内容存储到一块缓冲区中,当缓冲区满后,才会把缓冲区中的内容存入数据库,内容再继续存到缓冲区,如此反复,而flush()会将内存中的内容强制写到文件中,即使内存没满。这就是为什么最后要调用一次fileWriter.close(); 有关闭的功能,也有将缓冲区的内容写入文件中,否则脚本最后有少部分的内容缺失。如果是写小文件的时候,会出现文件空白,没有内容。

 

这个问题很常见,值得注意。




 

posted @ 2013-07-24 19:33  jlins  阅读(677)  评论(0编辑  收藏  举报