Извините, вы не можете воспроизвести вашу проблему здесь в следующем базовом примере:
File file = new File("/test.txt");
FileWriter writer = null;
try {
writer = new FileWriter(file);
writer.write("test");
} finally {
if (writer != null) writer.close();
}
Desktop.getDesktop().open(file);
Ваша проблема лежит в другом месте.Возможно, вы закрываете неправильный дескриптор Writer
(вы должны закрывать "самый внешний" писатель, например, если вы обернули FileWriter
в BufferedWriter
, вы должны закрыть BufferedWriter
вместо этого) или делаете это слишком поздно (например, звонить Desktop#open()
внутрь try
, пока вы делаете близкое в finally
)?