黑马程序员技术交流社区

标题: FileReader对象问题求解 [打印本页]

作者: 狼牙    时间: 2013-7-27 07:27
标题: FileReader对象问题求解
为什么FileReader对象只能使用一次,当第二次使用时,就会出现问题(问题是第二次无法正常输出,文件内容全部为中文)?
我写的是这样的一段代码:我的思路是两个方法共用一个FileReader对象,用法不同的读取方法把文件中的中文数据输出打印。
可是,当我把任意一个方法注释掉后都可以正常运行,当两个方法同时使用时就会出现问题,第二个方法无法正常输出;
我在想为什么数据库连接对象就可以共用,为什么FileReader对象不可以共用?路过的大神们请留言相告!先谢谢各位!!
  System.out.println("方法一:");
  FileReader f=new FileReader("D:\\IO.txt");
  int ch=0;
  while((ch=f.read())!=-1)
  {
   System.out.print((char)ch);
  }
  System.out.println("\r\n\r\n方法二:");
  char[] buf=new char[5];
  int num=0;
  while((num=f.read(buf))!=-1)
  {
   System.out.print(new String(buf,0,num));
  }
  f.close();

作者: 刘张朋    时间: 2013-7-27 14:12
我认为在读取文件的时候有一个指针指向流读取的位置,当你第一次已经读取完成后,指针已经指向了文件末尾,那肯定就读不到文件了

作者: luckwei    时间: 2013-7-27 17:38
两种方法同时调用时,第一个方法运行完了之后,把文件读取完后,FileReader对象的指针就指向了文件的末尾,在用read()方法时,就没有 程序可读了,就只打印出       方法二:没有内容
作者: 狼牙    时间: 2013-7-28 09:51
luckwei 发表于 2013-7-27 17:38
两种方法同时调用时,第一个方法运行完了之后,把文件读取完后,FileReader对象的指针就指向了文件的末尾, ...

原来如此!受教啦!




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