Java FileReader方法未返回/打印文件记录中的所有字符
我试图通过FileWriter写入文件,然后通过FileReader读取。FileWriter可以将记录写入文件,但FileReader方法在打印时似乎跳过了字符。我已经在下面粘贴了代码、文件内容和输出。你能帮我找出我遗漏了什么或做错了什么吗
***更新-
刚刚意识到(发布后)while语句中的“read()”可能正在读取print语句中“read()”前面的一个字符,从而导致其他所有字符(从第一个字符开始)跳过print语句。不过我不确定。这就是这里发生的事情吗
代码-
public class FileIOCharClass {
public static void main(String[] args) {
File TestChar = new File("C:\\TestChar.txt");
FileIOCharClass FileIOChar = new FileIOCharClass();
try {
FileIOChar.charWriteMethod(TestChar);
}
catch (IOException a){
System.out.println("IO Exception occured in Write method");
}
try{
FileIOChar.charReadMethod(TestChar);
}
catch (IOException b){
System.out.println("IO Exception occured in Read method");
}
}
private void charWriteMethod(File CharFileToWrite) throws IOException {
FileWriter WriteRoutine = null;
try{
WriteRoutine = new FileWriter(CharFileToWrite);
WriteRoutine.write("Line-1");
WriteRoutine.write("Line-2");
WriteRoutine.write("Line-3");
}finally {
WriteRoutine.flush();
WriteRoutine.close();
}
}
private void charReadMethod(File CharFileToRead) throws IOException {
FileReader ReadRoutine = new FileReader(CharFileToRead);
while (ReadRoutine.read() != -1){
System.out.println(((char)ReadRoutine.read()));
}
}
}
创建的TestChar文件的内容-
Line-1Line-2Line-3
程序打印输出
i
e
1
i
e
2
i
e
3
Process finished with exit code 0
# 1 楼答案
问题是你读了两遍。在while条件中输入一次,在block语句中输入另一次
相反,您可以尝试: