黑马程序员技术交流社区

标题: IO流读取方法,有一点不明白的 [打印本页]

作者: 戴进飘    时间: 2012-5-12 00:43
标题: IO流读取方法,有一点不明白的
import java.io.*;
class FileReaderDemo1
{
public static void main(String[] args) throws IOException
{
  FileWriter fw = new FileWriter("123.txt");
  fw.write("abcdefg");
  fw.close();  

  FileReader fr = new FileReader("123.txt");
  System.out.println((char)fr.read());
  System.out.println((char)fr.read());
  System.out.println((char)fr.read());
  fr.close();
  System.out.println((char)fr.read());    //不明白的是为什么连最后一条语句都会读取出来,上面语句不是关闭此流资源了吗?
}
}

打印结果:
a
b
c
d




不明白的是为什么连最后一条语句都会读取出来,不是关闭流资源了吗?


作者: 金肖    时间: 2012-5-12 01:29
因为read方法是阻塞式方法,fr在关闭时,还会在进行一次刷新,因此会在读取一个字符,
fr.close();
  System.out.println((char)fr.read());    //在此后在读System.out.println((char)fr.read()); 一次的话,就回报异常




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