| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как правильно читать бинарные файлы |
| Автор: Royan 23.3.2008, 13:04 |
| Для чтения буквенных символов (characters) Используется цепочка new BufferedReader(new FileReader(file)); В моем случае я хочу один раз прочесть бинарный файл и потом ползать по нему в свое удовольствие. Вопрос как мне его буферизировать, чтобы при каждой операции чтения я мог быть уверен в том, что не происходит чтения с диска, а только из памяти? |
| Автор: ressac 23.3.2008, 13:46 |
| если правильно понял вопрос, то сохрани всё в один массив или лист или в другой подобный объект. |
| Автор: COVD 23.3.2008, 14:10 | ||
А что там буферизовать? Когда вы читаете текстовые строки, используя BufferedReader, то в каждый вызов readLine() вы получаете всегда одну строку. На самом деле с диска в этот момент может быть прочитан весь файл и уложен в буфер и все последующие вызовы readLine() будут возвращать строки из буфера. В случае же с байтовым файлом вам надо определить размер данных, создать соответствующего размера byte[] и записать туда данные. Наверное, проще всего использовать readFully(byte[]) в DataInputStream( .. ) - этот метод блокируется, пока все не прочитает в byte[]. |
| Автор: Royan 23.3.2008, 14:56 |
| COVD, Окей понял спасибо! |
| Автор: w1nd 23.3.2008, 23:32 |
| Можно использовать файл, отображённый на память. Если её (памяти) достаточно, будет вам полная буферизация, будет недостаточно - не получите OutOfMemory. |