![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Для чтения буквенных символов (characters) Используется цепочка new BufferedReader(new FileReader(file)); В моем случае я хочу один раз прочесть бинарный файл и потом ползать по нему в свое удовольствие. Вопрос как мне его буферизировать, чтобы при каждой операции чтения я мог быть уверен в том, что не происходит чтения с диска, а только из памяти?
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
если правильно понял вопрос, то сохрани всё в один массив или лист или в другой подобный объект.
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
А что там буферизовать? Когда вы читаете текстовые строки, используя BufferedReader, то в каждый вызов readLine() вы получаете всегда одну строку. На самом деле с диска в этот момент может быть прочитан весь файл и уложен в буфер и все последующие вызовы readLine() будут возвращать строки из буфера. В случае же с байтовым файлом вам надо определить размер данных, создать соответствующего размера byte[] и записать туда данные. Наверное, проще всего использовать readFully(byte[]) в DataInputStream( .. ) - этот метод блокируется, пока все не прочитает в byte[]. Это сообщение отредактировал(а) COVD - 23.3.2008, 14:12 |
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
COVD, Окей понял спасибо!
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Можно буфферизировать файл с помощью NIO и читать данные через ByteBuffer:
|
||||
|
|||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Можно использовать файл, отображённый на память. Если её (памяти) достаточно, будет вам полная буферизация, будет недостаточно - не получите OutOfMemory.
Это сообщение отредактировал(а) w1nd - 23.3.2008, 23:33 -------------------- ![]() ![]() |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |