如何避免此java.io.IOException:设备上没有剩余空间

阿维纳什

如果我的空间已满,我有时会出现以下异常

java.io.IOException: No space left on device
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:282)
        at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1847)
        at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1756)
        at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:230)

Java中有什么方法可以避免这种情况。我的意思是如果没有空格,请不要调用write

Sotirios Delimanolis

Java 7 NIO提供了FileStore类来检查可用大小

Path p = Paths.get("/your/file"); // where you want to write
FileSystem fileSystem = FileSystems.getDefault();
Iterable<FileStore> iterable = fileSystem.getFileStores();

Iterator<FileStore> it = iterable.iterator(); // iterate the FileStore instances
while(it.hasNext()) {
    FileStore fileStore = it.next();
    long sizeAvail = fileStore.getUsableSpace(); // or maybe getUnallocatedSpace()
    if (Files.getFileStore(p).equals(fileStore) { // your Path belongs to this FileStore
        if (sizeAvail > theSizeOfBytesYouWantToWrite) {
            // do your thing
        }
    }
}

显然,您仍然可以获得a,IOException因为没有什么是原子的,其他进程可能正在使用同一磁盘,因此请记住这一点并相应地处理异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PySpark 设置本地目录以避免 java.io.IOException: 设备上没有剩余空间

Debian上的PHPStorm EAP更新:java.io.IOException:设备上没有剩余空间

java.io.IOException:设备Android上没有剩余空间

Spark:java.io.IOException:设备上没有剩余空间

java.io.FileNotFoundException和(设备上没有剩余空间)

Hortonworks Hadoop NN 和 RM 堆在高利用率时卡在过载状态,但没有应用程序运行?(java.io.IOException:设备上没有剩余空间)

如何避免此java.io.FileNotFoundException?

如何在 Mac 上“修复 ENOSPC:设备上没有剩余空间,请写入”

sudo:无法执行mkdir / var / log / sudo-io / 00 / 2A:设备上没有剩余空间

PipedInputStream-如何避免“ java.io.IOException:管道损坏”

SSD上的Btrfs,“设备上没有剩余空间”;用fstrim和btrfs balance捕获22; 如何恢复?

当设备有足够的空间时,如何解决mv期间出现的间歇性“设备上没有剩余空间”错误?

如何避免这个`System.IO.IOException`

安装未成功。无法安装该应用程序。java.io.IOException:仅请求内部,但没有足够的空间

如何解决Qt应用程序的图形问题?(海豚:14635):Gdk-警告**:shmget失败:错误28(设备上没有剩余空间)

AWS如何释放/ dev / nvme1n1p1和/ dev / loop#处理“设备上没有剩余空间”

PostgreSQL | 设备上没有剩余空间

问题:设备上没有剩余空间

设备上没有剩余空间

XFS设备上没有剩余空间

rsyslogd - 设备上没有剩余空间

dd:设备上没有剩余空间

Httpd:设备上没有剩余空间

bash:设备上没有剩余空间

设备上没有剩余空间

DD:设备上没有剩余空间

GCM getToken()在某些设备上发送java.io.IOException:TIMEOUT

IOError:设备上没有剩余空间-哪个设备?

Mac上的Docker:设备上没有剩余空间