如何处理java中的磁盘已满错误

时间:2011-09-28 11:54:24

标签: java filesystems diskspace

我正在开发一个Java应用程序。我们读了很多数据,操纵它然后写入本地m / c中的文件。如果在任何情况下磁盘已满,那么如何在Java应用程序中处理此异常。

3 个答案:

答案 0 :(得分:8)

你可以看看here 此解决方法解决了磁盘已满时不会引发异常的问题。

基本上,它由此完成:

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

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

答案 1 :(得分:3)

当您说如何处理此异常时,您能详细说明您的意思吗?

我看待它的方式有两种:

  • 要么向用户提供该信息,要么用户需要清理一些磁盘空间
  • 或者您将从应用程序中删除您自己操作的一些不需要的数据,例如系统中持续时间最长的数据或其他一些标准。

答案 2 :(得分:2)

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

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