【发布时间】:2019-11-30 18:21:54
【问题描述】:
我正在尝试使用ExecutorService 来写入文件。但是,当我执行这段代码时,在执行完成之前执行到outFile.close();,这会抛出
java.io.IOException: Stream closed
如何才能在所有任务完成后才能拨打outFile.close()?
(PS:为了代码清晰,我已经删除了所有的 try/catch 块。)
ExecutorService executor = Executors.newFixedThreadPool(3);
for (int i = 1; i <= 1000; i++) {
final int counter = i;
executor.execute(new Runnable() {
@Override
public void run() {
outFile.write(wld.getWord(counter) + "successful");
outFile.write("\n");
}
});
}
outFile.close();
【问题讨论】:
标签: java file-io threadpool