Jestem trochę zdezorientowany z powodu błędu, który mój program zaczął ostatnio rzucać.W jaki sposób zamknięcie obiektu FileInputStream może spowodować błąd "Brak miejsca na urządzeniu?"
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)
Zakładam, że ponieważ jest to FileInputStream, ten plik jest przechowywany w pamięci, a nie na dysku fizycznym. Poziomy pamięci wyglądają świetnie, podobnie jak przestrzeń dyskowa. Jest to szczególnie mylące, ponieważ dzieje się to przy zamknięciu FileInputStream. Dziękuję za wszelkie wyjaśnienia, które możesz mieć na temat tego, jak to może się zdarzyć.
EDIT: Kod do przeglądu
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();
}
Jak widać powyżej mam tylko otwierania pliku, czytając jakąś treść, a następnie zamyka plik.
dlaczego nie przenieść twój kod? – lichengwu
Dodany kod do wyjaśnienia. – Judicator
może być os pisze niektóre rzeczy na dysku, logi dostępu itp. – SpaceTrucker