我想寫一些字符串到一個文件。所以,我用BufferedWriter類。由於許多線程傾向於寫入該文件,因此我想知道寫入和writeLine方法是否爲原子。另外,我希望程序將輸出寫入多個文件,每個文件(例如file.txt0,file.txt1,...)有100行。例如作家是原子方法嗎?
public class Main {
static ExecutorService exec = Executors.newFixedThreadPool(5);
BufferedWriter bw;
public class myWriter implements Runnable {
String str;
myWriter (String str) {
this.str = str;
}
public void run() {
bw.write(str);
bw.writeLine();
}
}
public static void main(String[] args) {
bw = new BufferedWriter(new FileWriter("train.txt"));
for (String arg: args)
exec.execute(new myWriter(arg));
exec.awaitTermination(100000, TimeUnit.MILLISECONDS);
}
}
有人可以幫我嗎?如果它們不是原子的,我怎樣才能使它們原子化並避免碰撞?
+1。很高興知道。 – Mudassir 2012-03-01 07:54:24
不錯的工作。如果我希望它將輸出寫入多個文件,每個文件100行,我該怎麼辦? – orezvani 2012-03-01 08:12:04
@emab,這取決於。你必須編輯你的問題,更詳細地說明你想要做什麼(:) – Marcelo 2012-03-01 08:16:05