如何在java中处理磁盘已满错误
我正在开发一个Java应用程序。我们读取大量数据,对其进行操作,然后在本地m/c中写入文件。在任何情况下,如果磁盘已满,那么如何在Java应用程序中处理此异常 当你说如何处理这个异常时,你能更准确地说明你的意思吗 在我看来,有两种方式:如何在java中处理磁盘已满错误,java,filesystems,diskspace,Java,Filesystems,Diskspace,我正在开发一个Java应用程序。我们读取大量数据,对其进行操作,然后在本地m/c中写入文件。在任何情况下,如果磁盘已满,那么如何在Java应用程序中处理此异常 当你说如何处理这个异常时,你能更准确地说明你的意思吗 在我看来,有两种方式: 要么您将该信息呈现给用户,然后用户需要清理一些磁盘空间 或者,您将从应用程序中删除自己操作的一些不需要的数据,例如,在系统中使用时间最长的数据或其他一些条件 你可以看看。 此解决方法解决了磁盘已满时不会引发异常的问题 基本上是这样做的: FileOutputS
- 要么您将该信息呈现给用户,然后用户需要清理一些磁盘空间
- 或者,您将从应用程序中删除自己操作的一些不需要的数据,例如,在系统中使用时间最长的数据或其他一些条件
- 你可以看看。
此解决方法解决了磁盘已满时不会引发异常的问题 基本上是这样做的:
FileOutputStream fos = ...;
fos.write("hello".getBytes());
fos.getFD().sync();
fos.close();
当磁盘已满时,调用
sync()
方法将引发syncfailedeException
。这是一篇关于以下主题的好博客文章:
此外,这张Java错误单解释了各种策略:如果应用程序开始随机删除文件以清理空间,我会像一只疯狂的黑猩猩一样尖叫。当文件系统可用空间低于阈值时提醒用户可能是最好的方法。@mcfinnigan:我认为RockyMM的意思是应用程序可以清理自己的一些文件(如果有可以删除的文件),而不是像这样/tmp@mcfinnigan迈克尔667所说的正是我的意思。我会整理我的答案。我投票支持@fsavoia的答案,因为他似乎比我更了解这个问题。