Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中处理磁盘已满错误_Java_Filesystems_Diskspace - Fatal编程技术网

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

如何在java中处理磁盘已满错误,java,filesystems,diskspace,Java,Filesystems,Diskspace,我正在开发一个Java应用程序。我们读取大量数据,对其进行操作,然后在本地m/c中写入文件。在任何情况下,如果磁盘已满,那么如何在Java应用程序中处理此异常 当你说如何处理这个异常时,你能更准确地说明你的意思吗 在我看来,有两种方式: 要么您将该信息呈现给用户,然后用户需要清理一些磁盘空间 或者,您将从应用程序中删除自己操作的一些不需要的数据,例如,在系统中使用时间最长的数据或其他一些条件 你可以看看。 此解决方法解决了磁盘已满时不会引发异常的问题 基本上是这样做的: FileOutputS

我正在开发一个Java应用程序。我们读取大量数据,对其进行操作,然后在本地m/c中写入文件。在任何情况下,如果磁盘已满,那么如何在Java应用程序中处理此异常

当你说如何处理这个异常时,你能更准确地说明你的意思吗

在我看来,有两种方式:

  • 要么您将该信息呈现给用户,然后用户需要清理一些磁盘空间
  • 或者,您将从应用程序中删除自己操作的一些不需要的数据,例如,在系统中使用时间最长的数据或其他一些条件
    • 你可以看看。
      此解决方法解决了磁盘已满时不会引发异常的问题

      基本上是这样做的:

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

      当磁盘已满时,调用
      sync()
      方法将引发
      syncfailedeException

      这是一篇关于以下主题的好博客文章:


      此外,这张Java错误单解释了各种策略:

      如果应用程序开始随机删除文件以清理空间,我会像一只疯狂的黑猩猩一样尖叫。当文件系统可用空间低于阈值时提醒用户可能是最好的方法。@mcfinnigan:我认为RockyMM的意思是应用程序可以清理自己的一些文件(如果有可以删除的文件),而不是像这样/tmp@mcfinnigan迈克尔667所说的正是我的意思。我会整理我的答案。我投票支持@fsavoia的答案,因为他似乎比我更了解这个问题。