请帮我分析一下文件读取这两种写法,为何第二种有误:
注:G:/a.txt 文件内容为:abcdef 第一种打印的是 :abcdef 但第二种打印的是:bdf
1 .import java.io.FileNotFoundException; import java.io.FileReader;
import java.io.IOException;
public class FileRead {
public static void main(String[] args) {
try {
//创建一个文件读取流,和已知文件相关联
//要保证文件是必须存在的,如果不存在会报:java.io.FileNotFoundException:(系统找不到指定的文件。)
FileReader fileReader = new FileReader("G:/a.txt");
//调用读取流的read()方法,每次读取一个字符
int ch = 0;
while ((ch = fileReader.read()) != -1) {
System.out.print((char)ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.import java.io.FileNotFoundException;import java.io.FileReader;
import java.io.IOException;
public class FileRead {
public static void main(String[] args) {
try {
//创建一个文件读取流,和已知文件相关联
//要保证文件是必须存在的,如果不存在会报:java.io.FileNotFoundException:(系统找不到指定的文件。)
FileReader fileReader = new FileReader("G:/a.txt");
//调用读取流的read()方法,每次读取一个字符
while ( fileReader.read() != -1) {
System.out.print((char)fileReader.read());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|