Tôi hơi bối rối với một lỗi mà chương trình của tôi đã bắt đầu ném gần đây.Làm cách nào để đóng một FileInputStream gây ra lỗi "Không có dấu cách trên thiết bị"?
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)
Tôi giả định rằng vì đây là FileInputStream, tệp này đang được lưu trữ trong bộ nhớ chứ không phải trên đĩa vật lý. Các mức bộ nhớ trông tuyệt vời và cũng như không gian đĩa. Điều này đặc biệt khó hiểu vì nó xảy ra khi đóng FileInputStream. Cảm ơn mọi lời giải thích bạn có thể có về cách điều này có thể xảy ra.
EDIT: Mã để xem xét
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();
}
Như bạn thấy ở trên tôi chỉ mở tập tin, đọc một số nội dung, và sau đó đóng file.
tại sao không dán bạn mã? – lichengwu
Đã thêm mã để làm rõ. – Judicator
có thể là hệ điều hành đang ghi một số nội dung vào đĩa, nhật ký truy cập, v.v. – SpaceTrucker