我有一個文件打開和編寫與EOFException類曾經在20-30次左右死機的情況,因爲該文件不可用因爲其他一些進程正在寫入。如何在同一個線程等待文件被寫入,以完成,所以我們可以使用它
我能趕上這個例外,然後以某種方式等待文件的寫入操作同步到結束,這樣我就可以遞歸方法?
File productJSON = getFileStreamPath("product" + "_" + getId() + ".json");
if (!productJSON.exists()) {
productJSON = getFileStreamPath("product" + ".json");
}
InputStream jsonStringsFileInputStream;
try {
jsonStringsFileInputStream = new FileInputStream(productJSON);
HashMap<String, Map> that = new JSONToProductParser().convertThisToThat(jsonStringsFileInputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
無法理解你的問題,你可以請ellobrate上的文件 – koutuk 2014-12-02 09:24:49
讀/寫操作應該是同步的,以避免在多線程應用程序 – jhamon 2014-12-02 09:25:21
將文件標記爲併發中的代碼同步。它將解決你的問題,在這種情況下,一次只能有一個線程能夠寫入它。 – 2014-12-02 09:25:59