Buffered Writer 和 Reader Proper order/use
Buffered Writer and Reader Proper order/use
所以我不确定我的错误在 BufferedWriter 和 BufferedReader 的 order/use 哪里。你自己看。
除了这些方法外,我的程序都有效。这是我声明东西的地方,很确定这里没有错误。
fw = new FileWriter(file, true);
bw = new BufferedWriter(fw);
fr = new FileReader(file);
br = new BufferedReader(fr);
现在这是将内容添加到文件的方法,很确定这个方法有效:
public static void addStuff(String toAdd){
f.format("%s ", toAdd);
try {
bw.write(toAdd);
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error at addstuff");
}
System.out.printf("%s added", toAdd);
System.out.println();
}
最后但同样重要的是,我很确定我做错了方法。这一个读取刚刚添加到的文件。
public List<String> readFile(){ //return a list off stuff
try{
String line = br.readLine();
stuff.add(line);
}
catch(IOException ioe){
System.out.println("Error at readFile");
}
return stuff;
}
我遇到的错误是当通过readFile()方法读取文件时打印出'null',所以程序要么没有正确读取,要么没有正确写入。
像这样:
hi added
null
提前致谢,喜欢这里的 java 编程社区。
readLine()
可以 return null,表示流结束:在本例中为文件结束。您的代码不允许这种可能性,也不允许在这种可能性发生时向调用方报告。
我会完全摆脱 readFile()
方法,取而代之的是调用 readLine(),
测试结果是否为空,如果是则关闭文件并停止读取,否则将行添加到collection.
您的异常处理和日志记录也很差。您一直在捕获异常,记录它们,然后继续处理,就好像它们没有发生过一样。例如,在 readFile(),
中,即使在失败后您也会记录成功。依赖于 try 块中代码成功的代码应该在同一个 try 块中。
所以我不确定我的错误在 BufferedWriter 和 BufferedReader 的 order/use 哪里。你自己看。 除了这些方法外,我的程序都有效。这是我声明东西的地方,很确定这里没有错误。
fw = new FileWriter(file, true);
bw = new BufferedWriter(fw);
fr = new FileReader(file);
br = new BufferedReader(fr);
现在这是将内容添加到文件的方法,很确定这个方法有效:
public static void addStuff(String toAdd){
f.format("%s ", toAdd);
try {
bw.write(toAdd);
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error at addstuff");
}
System.out.printf("%s added", toAdd);
System.out.println();
}
最后但同样重要的是,我很确定我做错了方法。这一个读取刚刚添加到的文件。
public List<String> readFile(){ //return a list off stuff
try{
String line = br.readLine();
stuff.add(line);
}
catch(IOException ioe){
System.out.println("Error at readFile");
}
return stuff;
}
我遇到的错误是当通过readFile()方法读取文件时打印出'null',所以程序要么没有正确读取,要么没有正确写入。 像这样:
hi added
null
提前致谢,喜欢这里的 java 编程社区。
readLine()
可以 return null,表示流结束:在本例中为文件结束。您的代码不允许这种可能性,也不允许在这种可能性发生时向调用方报告。
我会完全摆脱 readFile()
方法,取而代之的是调用 readLine(),
测试结果是否为空,如果是则关闭文件并停止读取,否则将行添加到collection.
您的异常处理和日志记录也很差。您一直在捕获异常,记录它们,然后继续处理,就好像它们没有发生过一样。例如,在 readFile(),
中,即使在失败后您也会记录成功。依赖于 try 块中代码成功的代码应该在同一个 try 块中。