日期:2014-05-20  浏览次数:20694 次

关于输出的一个问题,谢谢
package   com.wxniit.io;

import   java.io.BufferedReader;
import   java.io.FileNotFoundException;
import   java.io.FileReader;
import   java.io.FileWriter;
import   java.io.IOException;

public   class   ReadAndWrite   {

/**
  *   @param   args
  */
public   static   void   main(String[]   args)   {
//   TODO   自动生成方法存根
try   {
//   实例化阅读器(节点流、字符流)
FileReader   reader   =   new   FileReader( "C:/a.txt ");


char[]   ch   =   new   char[50];
int   len   =   0;   //   读取到的字符数目或者结束标记
while   ((len   =   reader.read(ch))   !=   -1)   {

System.out.print(new   String(ch,   0,   len));
}
reader.close();


//   实例化缓冲阅读器(流的嵌套,   过滤器流(一个流的参数是其他流))
BufferedReader   br   =   new   BufferedReader(reader);

String   line   =   " ";

boolean   more   =   true;
while(more){
line   =   br.readLine();
if(line   ==   null){
more   =   false;
}
else{
System.out.println(line);
}
}


}   catch   (FileNotFoundException   e)   {
//   TODO   自动生成   catch   块
e.printStackTrace();
}   catch   (IOException   e)   {
//   TODO   自动生成   catch   块
e.printStackTrace();
}

}

}
这个程序为什么只把   C:/a.txt   打印一遍??不是有两个System.out.print   输出么??


------解决方案--------------------
reader.close()以后reader已经是空的了 当然打不出来东西了
------解决方案--------------------
BufferedReader br = new BufferedReader(reader);
这个reader在上面已经消耗光了自然不会有输出

------解决方案--------------------
BufferedReader br = new BufferedReader(reader);
这个reader在上面已经消耗光了自然不会有输出


对头