我想写一些字符串到一个文件。所以,我用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