黑马程序员技术交流社区

标题: IO流的疑问 [打印本页]

作者: 高丽华    时间: 2014-1-19 22:38
标题: IO流的疑问
什么时候使用flush()刷新??
作者: bjbao1    时间: 2014-1-19 23:05
先详细解释一下刷新这个方法吧:public void flush() throws IOException 源自接口Flushable,API中对这个接口的解释为:Flushable是那些可能被刷新的数据的目的地,调用flush方法用来把所有已缓存的输出写到底层系统当中。

通俗一点解释:当你需要把输出流当中的数据(通常为字符)从流中写到在硬盘上的某个文件上时,就需要调用这个flush方法,他会把缓存在流中的数据写入到硬盘的某个文件中。

比如:

BufferedWriter bufWriter = new BufferedWriter("c:\\test.txt");
bufWriter.write("abcdefg"); //此时,字符串abcdefg在字符输出流中,并没有写在c:\test.txt文件上
bufWriter.flush(); //这个方法会把流中的abcdefg这个字符写入到test.txt文件中
bufWriter.close();//关闭流,这个方法在关闭流资源之前,会自动调用flush方法, 在关闭前将流中的内容释放到目的地

希望可以帮到你~

作者: ↑↓ME→←    时间: 2014-1-19 23:21
写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
作者: ↑↓ME→←    时间: 2014-1-19 23:23
经处经常用的就是BufferedWriter FileWriter
作者: 路国强    时间: 2014-1-20 01:28
记住,只要用到缓冲区就要刷新。flush否则数据write写不到文件中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2