在下面的程序中,循环迭代1000次,并且我正在使用FileWriter将所有条目写入文件中,但不幸的是程序最终只写入了510(有时是415,有时是692,总是小于1000)条目文件,但循环迭代1000次。为什么文件中没有所有条目?
import java.io.* ;
import java.util.*;
public class DemoWriter {
public static void main(String[] args) throws Exception {
List<String> receiverList = new ArrayList<String>() ;
receiverList.add("[email protected]") ;
receiverList.add("[email protected]") ;
receiverList.add("[email protected]") ;
FileWriter fw = new FileWriter("a.txt") ;
BufferedWriter bw = new BufferedWriter(fw) ;
int size = receiverList.size() ;
String str ;
int count = 0 ;
for(int i = 1 ; i <= 1000 ; ++i){
str = receiverList.get((int) (Math.random() * size)) + "\n" ;
bw.write(++count + ".> " + str) ;
System.out.print(count + ".> " + str) ;
}
}
}
这是因为文件大小或其他?
Thnx快速响应这里所有的好人。我纠正了我的代码(我忘记关闭流,现在代码工作完美)。正如所有人指出我需要关闭流,但我接受BalusC,因为他是第一个回答。
很高兴在这里你可以看到BalusC。 干杯:)
您不想在try-catch块的finally部分调用close() - 它会引发异常。 – 2009-11-02 18:32:28
那么?只需抓住它并进一步忽略它,或者为了记录目的而执行它的e.printStackTrace()。它肯定需要在finally块中完成,因为否则会泄露资源。 – BalusC 2009-11-02 18:35:20