【发布时间】:2013-01-30 14:55:16
【问题描述】:
我对我的程序最近开始抛出的错误感到有些困惑。
java.io.IOException: No space left on device
at java.io.FileInputStream.close0(Native Method)
at java.io.FileInputStream.close(FileInputStream.java:259)
at java.io.FilterInputStream.close(FilterInputStream.java:155)
我假设因为这是一个 FileInputStream,所以这个文件保存在内存中,而不是物理磁盘上。内存级别看起来很棒,磁盘空间也很棒。这尤其令人困惑,因为它发生在 FileInputStream 关闭时。感谢您对如何发生这种情况的任何解释。
编辑:审查代码
if (this.file.exists()) {
DataInputStream is = new DataInputStream(new FileInputStream(this.file));
this.startDate = new DateTime(is.readLong(), this.timeZone);
this.endDate = new DateTime(is.readLong(), this.timeZone);
is.close();
}
正如您在上面看到的,我只是打开文件,读取一些内容,然后关闭文件。
【问题讨论】:
-
添加了澄清代码。
-
可能是操作系统正在将一些东西写入磁盘,访问日志等。
-
您尝试获取的文件位于何处?可能是其他设备拒绝访问并给出总容量值为 0,java 将其解释为存储空间不足?在我的机器上运行代码不会产生任何错误。
-
操作系统和Java版本是多少?
-
可能打开了一个新的文件描述符,但是达到了限制?
标签: java exception ioexception fileinputstream