5

I am working on a Java application. We read lot of data, manipulate it and then write to files in local m/c. If, in any case, the disk is full then how to handle this exception in Java application.

4

3 回答 3

10

你可以看看这里
此变通方法解决了磁盘已满时不抛出异常的问题。

基本上,它是通过以下方式完成的:

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

当磁盘已满时,对该方法的调用sync()将抛出一个,。SyncFailedException

于 2011-09-28T12:02:33.820 回答
3

当您说如何处理此异常时,您能否更准确地说明您的意思?

我看到它的方式有两种:

  • 要么您将该信息提供给用户,然后用户将需要清理一些磁盘空间
  • 或者您将从应用程序中删除一些您自己操作的不需要的数据,例如在系统中使用时间最长的数据或其他一些标准。
于 2011-09-28T12:02:03.493 回答
2

这是关于该主题的一篇很好的博客文章:http ://weblog.janek.org/Archive/2004/12/20/ExceptionWhenWritingToAFu.html

此外,Java 的这个 bug 票解释了各种策略:http ://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4338871

于 2013-05-23T02:16:07.810 回答