在一个Java程序(Java 1.5)中,我有一个包装了FileWriter的BufferedWriter,并且我调用write()很多次...生成的文件相当大...
在这个文件的行数中,有些是不完整的...
我需要每次写入时都调用flush()吗(但我怀疑这样做效率会低下),或者使用BufferedWriter的另一个方法或使用其他类...?
(由于我有大量的行要写入,因此我希望有一些非常高效的解决方法。) 什么时候是理想的“flushing”时机?(当我达到BufferedWriter的容量时)...
Init:
在这个文件的行数中,有些是不完整的...
我需要每次写入时都调用flush()吗(但我怀疑这样做效率会低下),或者使用BufferedWriter的另一个方法或使用其他类...?
(由于我有大量的行要写入,因此我希望有一些非常高效的解决方法。) 什么时候是理想的“flushing”时机?(当我达到BufferedWriter的容量时)...
Init:
try {
analysisOutput = new BufferedWriter(new FileWriter(
"analysisResults", true));
analysisOutput.newLine();
analysisOutput.write("Processing File " + fileName + "\n");
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
写作:
private void printAfterInfo(String toBeMoved,HashMap<String, Boolean> afterMap, Location location)
throws IOException {
if(afterMap != null) {
for (Map.Entry<String, Boolean> map : afterMap.entrySet()) {
if (toBeMoved == "Condition") {
if (1 <= DEBUG)
System.out.println("###" + toBeMoved + " " + location + " "
+ conditionalDefs.get(conditionalDefs.size() - 1)
+ " After " + map.getKey() + " "
+ map.getValue() + "\n");
analysisOutput.write("###" + toBeMoved + " " + location + " "
+ conditionalDefs.get(conditionalDefs.size() - 1)
+ " After " + map.getKey() + " " + map.getValue()
+ "\n");
} else {
if (1 <= DEBUG)
System.out.println("###" + toBeMoved + " " + location + " "
+ map.getKey() + " After "
+ map.getValue() + "\n");
if (conditionalDefs.size() > 0)
analysisOutput.write("###" + toBeMoved + " " + location + " "
+ conditionalDefs.get(conditionalDefs.size() - 1) + " "
+ map.getKey() + " After " + map.getValue()
+ "\n");
else
analysisOutput.write("###" + toBeMoved + " " + location + " " + map.getKey() + " After " + map.getValue() + "\n");
}
}
}
我刚刚发现那些不完整的行是在“处理文件”之前,所以当我从一个我要分析的文件切换到另一个文件时会出现这种情况...
结束:
dispatch(unit);
try {
if (analysisOutput != null) {
printFileInfo();
analysisOutput.close();
}
}
catch (IOException ex) {
ex.printStackTrace();
}
有时候,printFileInfo打印出的信息在结果文件中并没有显示...