Как обрабатывать ошибки переполнения диска в Java - PullRequest
5 голосов
/ 28 сентября 2011

Я работаю над приложением Java. Мы читаем много данных, манипулируем ими, а затем записываем файлы в локальные m / c. Если в любом случае диск заполнен, то как обработать это исключение в приложении Java.

Ответы [ 3 ]

9 голосов
/ 28 сентября 2011

Вы можете посмотреть здесь .
Этот обходной путь решает проблему отсутствия исключения при заполнении диска.

По сути, это делается следующим образом:

FileOutputStream fos = ...;
fos.write("hello".getBytes());
fos.getFD().sync();
fos.close();

При вызове метода sync() при заполнении диска выдается SyncFailedException.

3 голосов
/ 28 сентября 2011

Можете ли вы более точно указать, что вы имеете в виду, когда говорите , как обрабатывать это исключение ?

То, как я его вижу, существует два способа:

  • либо вы предоставите эту информацию пользователю, а затем пользователю потребуется очистить место на диске
  • , либо вы удалите некоторые ненужные данные, которыми вы манипулируете самостоятельно, из приложения дляПример данных, которые были в течение самого длительного времени в системе или по некоторым другим критериям.
2 голосов
/ 23 мая 2013

Это хороший пост в блоге на тему: http://weblog.janek.org/Archive/2004/12/20/ExceptionWhenWritingToAFu.html

Кроме того, этот билет об ошибке для Java объясняет различные стратегии: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4338871

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...