いくつかの文字列をファイルに書きたいと思います。だから、私はBufferedWriterクラスを使用しました。多くのスレッドがそのファイルに書き込む傾向があるので、私はの書き込みとのwriteLineのメソッドがアトミックかどうかを知りたいと思っています。作者はアトミックな方法ですか?
また、出力を複数のファイルに書き、ファイルごとに100行(file.txt0、file.txt1など)を書きたいとします。たとえば
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
素敵な仕事。ファイルごとに100行の複数のファイルに出力を書きたい場合、どうすればよいですか? – orezvani
@emab、それは依存します。 (正確に)何をしたいのかという詳細をつけて質問を編集する必要があります: – Marcelo