У меня есть проблема с открытием и записью файла, которая срабатывает с 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
операции чтения/записи на файле должны быть синхронизированы, чтобы избежать параллелизма в многопоточном приложении – jhamon
Марк файл как синхронизированы. Это решит вашу проблему, в этом случае только один поток за раз сможет записать на него. –