日期:2014-05-19  浏览次数:20794 次

JDK API里OutputStream里flush()根本就是空操作,它的子类也没有重写改方法;那这个方法有什么作用啊?
我试了几个程序 有flush()和没有 一样效果 为什么?
public static void main(String[] args) throws Exception { // 异常抛出,不处理
// 第1步、使用File类找到一个文件
File f = new File("d:" + File.separator + "test.txt"); // 声明File对象
// 第2步:通过子类实例化父类对象
OutputStream out = null; // 准备好一个输出的对象
out = new FileOutputStream(f); // 向上转型
// 第3步:进行写操作
String str = "Hello World!!!"; // 准备一个字符串
byte b[] = str.getBytes(); // 只能输出byte数组,所以将字符串变为byte数组
out.write(b); // 将内容输出,保存文件
// 第4步:关闭输出流
out.close(); // 关闭输出流
}


------解决方案--------------------
你看到flush()为空应该是在OutputStream类中,flush我的理解是把缓存中的东西写入实体中,FileOutputStream没有实现该方法,所以你用不用都一样,你试下BufferedOutputStream,这时候有flush和没flush应该就有区别的。