在用完java输入输出流后一定要关闭该流吗?还有flush()方法具体作用。
在流外又套一层流:(比如)FileReader fr=new FileReader("D:/zyliu.txt");
BufferedReader br=new BufferedReader(fr);
.....
...
最后要关闭时,fr和br都要关闭吗?关闭时fr,br有先后顺序吗

解决方案 »

  1.   

    flushpublic void flush()
               throws IOException    刷新此输出流并强制写出所有缓冲的输出字节。flush 的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。    如果此流的预期目标是由基础操作系统提供的一个抽象(如一个文件),则刷新此流只能保证将以前写入到流的字节传递给操作系统进行写入,但不保证能将这些字节实际写入到物理设备(如磁盘驱动器)。    OutputStream 的 flush 方法不执行任何操作。    指定者:
            接口 Flushable 中的 flush    抛出:
            IOException - 如果发生 I/O 错误。
    最后要关闭时,fr和br都要关闭吗?关闭时fr,br有先后顺序吗
    〉〉〉从外向内
      

  2.   

    流用完之后要关闭了,先关闭fr再关br
    flush是将磁盘和缓存的数据同步了,保证能将这些字节实际写入到物理磁盘设备中!!!
      

  3.   

    先关br再关fr 关闭的时候最好加上try{}catch{}保护