我有兩個單獨的程序NumberWriter.java
向log.txt
文件寫入了少量數字,並且CharWriter.java
向log.txt
文件寫入了少量數字。如果我同時運行這兩個程序(幾乎同時運行獨立於兩個不同的控制檯),那麼沒有錯誤或異常,即都運行成功。然後,我期待在log.txt
文件中獲得文件內容混合的數字和字符,但只獲得任一個數字或字符。在同一文本文件上寫入Java多個程序
我完全沒有發現問題。任何幫助,將不勝感激。
NumberWriter.java
import java.io.IOException;
import java.io.FileWriter;
import java.lang.Exception;
public class NumberWriter {
public static void main(String args[]) throws IOException, Exception{
FileWriter fw = new FileWriter("log.txt");
for (int i = 01; i < 10; i++) {
fw.append(String.valueOf(i) + "\r\n");
System.out.println("NumberWriter: " + i);
Thread.sleep(1000);
}
fw.close();
System.out.println("number write done!");
}
}
CharWriter.java
import java.io.IOException;
import java.io.FileWriter;
import java.lang.Exception;
public class CharWriter {
public static void main(String args[]) throws IOException, Exception{
FileWriter fw = new FileWriter("log.txt");
String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 01; i < 10; i++) {
fw.append(s.charAt(i) + "\r\n");
System.out.println("CharWriter: " + s.charAt(i));
Thread.sleep(1000);
}
fw.close();
System.out.println("char write done!");
}
}
log.txt的文件內容,同時運行兩個程序
要麼
後B
C
D
E
F
G
H
I
J
或
1
2
3
4
5
6
7
8
9
編輯:這兩個程序都沒有異常和錯誤運行,所以我期待得到字符和數字的混合。什麼是我的理解滯後。
我不認爲有任何這種保證併發寫入文件。 – biziclop
@biziclop都在同一時間無一例外地運行。這就是爲什麼我期待數字和字符的混合。 – mmuzahid