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 输出么??
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在上面已经消耗光了自然不会有输出
while ((c = reader.read()) != -1)
System.out.print((char) c);
这个reader在上面已经消耗光了自然不会有输出
对头