中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中的输出流(字节流,字符流等)强制输出。
为什么会有这么个方法啊?
因为输出流在进行输出时,比如像某个文件中写入内容,其实是先将输出流写入到缓冲区,当缓冲区写满后才将缓冲区的内容输出到文件中。但是当主机完成输出流的输出后,有可能缓冲区这个时候还没有被填满,这样的话,就会一直等待主机发送内容,这时候,就可以使用flush将缓冲区的内容强制输出到文件中,清空缓冲区。
所以,一般在关闭输出流之前,要先调用flush方法强制缓冲区中的内容输出,并清空缓冲区。
- package mark.zhang;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- public class Test {
- public static void main(String[] args) throws Exception {
- File file = new File("text.txt");
- if(!file.exists()) {
- file.createNewFile();
- }
- FileOutputStream fos = new FileOutputStream(file);
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- byte[] b = new byte[1024*8];
- bos.write(b);
- bos.flush();
- }
- }