![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
Здравствуйте.
Подскажите , пожалуйста , как прочитать файл "file.txt" в обратном направлении, т.е. , начиная с конца файла к началу Спасибо Это сообщение отредактировал(а) lihusha - 14.6.2009, 11:27 |
|||
|
||||
ecologist |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
Смотри RandomAccessFile - перемещайся и читай побайтно.
|
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
примерчика не найдется ?
|
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
Разобрался
Вот примерчик
Это сообщение отредактировал(а) lihusha - 14.6.2009, 16:26 |
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
мля , как теперь для RandomAccessFile кодировку "UTF-8" выставить ?
|
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
Никак. RandomAccessFile работает с байтами. -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
Помогите , плз, с кодировкой .
RandomAccessFile читает , как мне нужно - построчно в обратном порядке , с конца файла , но не могу прочитать из него русские буквы, выдает в одних случаях "?????" , в других - кракозялбы. Может , кто уже сталкивался с такой стеной. |
|||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
смотрим UTF-8
изучаем java.nio.charset и выбираем подходы: 1. Читаем побайтно пока не встретим старший утэфовский байт. Конвертим в символ 2. Читаем побайтно до символа новой строки Переворачиваем массив Конвертим в строку |
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
делаю вот так
Вот как из строки line получить буквы кириллицы ? |
|||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
||||
|
||||
lihusha |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
генерируется исключение
причем , генерируется при любых значениях i в выражении
генерируется даже когда в методе делается вызов
без
Это сообщение отредактировал(а) lihusha - 16.6.2009, 18:12 |
||||||||
|
|||||||||
Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
Потому как в файле - UTF-8? А если в файле 8битная виндовая кодировка, то сообрази куда вставить, и добавить нехватающего кода:
|
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
У меня один вопрос: при чем тут Java: Работа с сетью?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
lihusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 8.6.2008 Репутация: нет Всего: нет |
Окончательно у меня получился вот такой класс , который может читать построчно , но с конца текстового файла
Это сообщение отредактировал(а) lihusha - 19.6.2009, 19:36 |
|||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
абы работало.
А если бы мне понадобилась такая штука в реальный проект, то я бы: 1. вместо LinkedList<Byte> использовал настоящий массив. Увеличивая его, (и копируя старый в увеличенный) Почитайте внимательно, как работают дженерик типы в Java для объектов и примитивных типов. 2. избавился от операции "переворота массива", незначительным усложнением алгоритма - записывал бы в массив с конца 2а. или вообще перешел бы на функции работы с файлами из пакета java.nio вместо RandomAccessFile чтобы сразу читать в буфер FileChannel 3. избавился от конструкции:
сведя ее к String line = charBuf.toString(); |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |