Java 输出流中的flush方法

Java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中的输出流(字节流,字符流等)强制输出。

为什么会有这么个方法啊?

因为输出流在进行输出时,比如像某个文件中写入内容,其实是先将输出流写入到缓冲区,当缓冲区写满后才将缓冲区的内容输出到文件中。但是当主机完成输出流的输出后,有可能缓冲区这个时候还没有被填满,这样的话,就会一直等待主机发送内容,这时候,就可以使用flush将缓冲区的内容强制输出到文件中,清空缓冲区。 

所以,一般在关闭输出流之前,要先调用flush方法强制缓冲区中的内容输出,并清空缓冲区。

 



java] ​​view plain​​ ​​copy​

 

 ​​print​​​​?​

  1. package mark.zhang;  
  2. import java.io.BufferedOutputStream;  
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. public class Test {  
  6.     public static void main(String[] args) throws Exception {  
  7.         File file = new File("text.txt");  
  8.         if(!file.exists()) {  
  9.             file.createNewFile();  
  10.         }  
  11.         FileOutputStream fos = new FileOutputStream(file);  
  12.         BufferedOutputStream bos = new BufferedOutputStream(fos);  
  13.         byte[] b = new byte[1024*8];  
  14.         bos.write(b);  
  15.         bos.flush();  
  16.     }  
  17. }