关于输出的一个问题,谢谢
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在上面已经消耗光了自然不会有输出
对头