У меня может глупый вопрос, но прошу прояснить коллеги
мы считываем файл таким образом:
byte[]bytes = new byte[inputStream.available()];
inputStream.read(bytes);
А если файл переданный в inputStream, очень большой.
То есть два вопроса:
1. Насколько он максимально может быть большой чтобы уместиться в byte[]bytes
2. А если он не поместиться я так понимаю выдаст исключение?
Юрий
31 уровень
О считывании файла
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
10 февраля 2020, 06:50решение
1. Что уместиться в массив, настолько может быть и большим. Максимально допустимый размер массива в джаве смотри в интернете, но думаю догадаться не сложно.
2. Да, какое это другой вопрос, как вариант возможно ArrayOutOfBondExeception, возможно и IOException.
В любом случае с большими файлами обычно не работают загоняя их в буфер, с ними работают как с потоками/интернетом. Ты же не скачиваешь себе на комп все тысячи терабайт серверов вк или фейсбука, когда открываешь заглавную страничку сайта? Ты берешь то что нужно.
С маленькими файлами, можно и буфер. Также буфер наверное можно использовать как инструмент и работая с большими файлами по кусках.
+2
Юрий
11 февраля 2020, 14:50
Спасибо за развёрнутый ответ
0