0
這是我的代碼片段。寫入相同的文件;不會覆蓋
File file = new File(Thread.currentThread().getName());
for(each element of the list){
createStringWriterAndPopulateDataToBeWritten
FileOutputStream fo = new FileOutputStream(file);
OutputStreamWriter out = new OutputStreamWriter(fo,"UTF-8");
out.write(sw.toString());
out.close();
}
現在說我有大小S
的newFixedThreadPool
;我通過這個線程池來完成一個工作列表。現在每次調用線程時,都會創建一個名稱爲線程名稱的文件,然後寫入該文件,但在循環中它只是覆蓋文件。
即使再次調用線程,如何才能使其追加並不覆蓋,因爲我的線程池工作列表相當長,在這種情況下可能會發生這種情況。
注意:傳遞給ThreadPool的作業列表中的每個元素也是一個列表,這就是爲什麼在代碼片段中存在for循環的原因。
謝謝。
所以即使我在循環中創建fileOutputStream並保持第二個參數爲true;它應該工作呃? 不是一個好的做法,但它仍然適用? – Kraken
因爲再次調用相同的代碼將等同於在循環內調用fileoutputStream?謝謝 – Kraken
@Kraken:它會工作,但效率非常低。將文件打開一次,寫入所有內容,然後關閉它將會變得非常乾淨。重新打開它,以便在需要時追加數據,但是當您知道*要寫入更多內容時,不會在循環的每次迭代中進行追加。 –