+83
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// java.io.FilterOutputStream
public void close() throws IOException {
try {
flush();
} catch (IOException ignored) {
}
out.close();
}
// тестовый код
try (OutputStream os = new BufferedOutputStream(new FileOutputStream("/tmp/little_virtual_fs/1.txt"))) {
byte[] buf = new byte[2028544];
os.write(buf, 0, 2028544); // максимальный размер файла, который влезает на нашу фс
os.write(buf, 0, 5); // и еще немножко
//os.flush();
}
А сейчас, на арене нашего цирка - очередная жабопроблема!
Как думаете, каков результат выполнения тестовой программы?
Запишет 2028549 байт? Хрен там, места маловато.
Выдаст IOException на write()? Хрен там, буферизация.
Выдаст IOException на close()? Хрен там, его сожрала реализация FilterOutputStream.
Результат: файл не дописался, исключения нет.
Решение: всегда дергать flush() перед close() самому или не юзать буферизованный поток.
Запостил: bormand,
21 Декабря 2013
bormand 21.12.2013 17:48 # +1
1024-- 21.12.2013 17:55 # +6
roman-kashitsyn 21.12.2013 17:59 # +3
bormand 21.12.2013 18:03 # 0
anonimb84a2f6fd141 21.12.2013 18:41 # +3
3.14159265 21.12.2013 18:55 # +3
anonimb84a2f6fd141 21.12.2013 21:01 # +2
guest 01.04.2014 19:28 # 0
bormand 01.04.2014 19:30 # 0
guest 01.04.2014 19:32 # 0
spivti 21.12.2013 19:21 # 0
должно работать, наверное, но могу и ошибаться. а то что не выдает IOException это конечно попа.
bormand 21.12.2013 19:26 # 0
flush() прямо перед close() или автозакрытием все равно обязателен, иначе BufferedOutputStream.close() сделает его сам, и сожрет исключение.
bormand 22.12.2013 15:55 # 0
Lure Of Chaos 22.12.2013 15:58 # 0
bormand 21.12.2013 19:02 # +3
Dummy00001 22.12.2013 15:50 # +6
но до уровня виндов жабе еще далековато.
Lure Of Chaos 22.12.2013 15:59 # +3
да такая же обратная совместимость со старыми граблями
anonimb84a2f6fd141 22.12.2013 21:16 # 0
Охблядь. Я думал о чем угодно, но не об этом. Я думал питон с его возвратом пустой строки вместо исключения при чтения из потока - унаследованный кал, но и жавку не обошла хуйня сия.
kegdan 22.12.2013 21:20 # +2
anonimb84a2f6fd141 22.12.2013 21:27 # 0
В жавке мне нравилось, что она не тупо копивала апи какой-то оси, соответственно не знакомые с этой осью чувствуют себя объебками.
Lure Of Chaos 23.12.2013 04:22 # +1
anonimb84a2f6fd141 23.12.2013 15:26 # 0
kegdan 21.12.2013 19:12 # −3
3.14159265 21.12.2013 21:17 # +7
kegdan 21.12.2013 21:42 # +7
anonimb84a2f6fd141 21.12.2013 21:02 # +5
Resolution: Won't Fix
Жаваёбы дважды соснули.
Stertor 21.12.2013 21:33 # 0
anonimb84a2f6fd141 21.12.2013 22:00 # 0
someone 22.12.2013 12:04 # +2
Lure Of Chaos 22.12.2013 13:00 # +2
одна из заповедей жабокодера
кстати, флашить нужно еще и всякие там EntityManager'ы
Yuuri 23.12.2013 12:27 # 0
А почему размер такой магический?
bormand 23.12.2013 12:47 # 0
anonimb84a2f6fd141 23.12.2013 15:26 # 0
bormand 23.12.2013 16:05 # 0
anonimb84a2f6fd141 23.12.2013 22:26 # 0
bormand 23.12.2013 22:43 # 0
anonimb84a2f6fd141 23.12.2013 23:02 # 0