![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Connie |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
Есть файл в UTF8, я читаю из него построчно.
Если первая строка такая <MENU> то начинается дальнейшая обработка. Все вроде бы просто, надо сравнить первую строк со строковой константой Вот код
А вот вывод
|
||||
|
|||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
ню ты намутил(а) ![]() в первой строчке, возможно, ещё и \n, то есть переход на новую строку, посему результат и +1.. |
|||
|
||||
Connie |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
polosatij,
Хорошо, пробуем так
![]() на всякий случай прилагаю этот файл. Нет там никакого переноса ![]() Это сообщение отредактировал(а) Connie - 8.10.2008, 22:11 Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
||||
|
|||||
polosatij |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
ню.. логично всё.. у тебя ведь перенос не в начале, а в конце ![]()
![]() |
|||
|
||||
redrick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: 3 Всего: 5 |
Bug ID: 4508058 =)
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058 сталобыть скипать надо первые 3 байта -------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
polosatij,
http://java.sun.com/javase/6/docs/api/java...html#readLine()
![]() redrick, я в принципе и пошел по этому пути, не стал так сравнивать line.equals("<MENU>"), а вместо этого line.contains("<MENU>") Я так и предположил, что это какой то глюк в распозновании UTF, спасибо за ссылку |
|||
|
||||
SoulKeeper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Для чего вообще в UTF-8 BOM пихать? |
|||
|
||||
redrick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: 3 Всего: 5 |
SoulKeeper,
вот вроде оттудаже:
типа просто маркер что файл UTF-8. Судя по всему это косяк который сделали и теперь не правят, т.к. боятся что у всех все сломается(баг 2001 года). С другой стороны стандарту 100 лет и здесь сановцы просто налажали. -------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
Alexander1966 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Странно, у меня все верно проверяет. Для:
wwweeeee <MENU> wwwwwwwww выдает: no yes no
|
|||
|
||||
alexadr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 25.9.2006 Репутация: 4 Всего: 4 |
Alexander1966,
а попробуй для вот такого контента файла UTF8 с BOM:
|
|||
|
||||
redrick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: 3 Всего: 5 |
Alexander1966,
просто файл у вас видимо без BOMа как сказал alexadr посмотрите хексэдитором -------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
Alexander1966,
В том и проблема, что сравнение не проходит, если <MENU> в первой строчке, а оно только там и должно быть, структура файла такая, если в первой строчке нет этой записи, то значит это не тот файл и дальнейшая обработка не производится. Попробуйте сделать сравнение line.equals("wwweeeee") так, что бы wwweeeee эта строчка была первой. Там далее в файле есть еще одна похожая строчка <DATA> так вот с ней сравнение проходит. При этом надо помнить, что формат того файла я поменять никак не смогу, т.к. он делается другой программой, т.е. работаю с тем, что есть. Но впрочем я решение нашел, я написал выше, оно меня устраивает ![]() ![]() |
|||
|
||||
ecologist |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
А почему исполь зуется FileStream - он же для побайтного считывания ?
Может лучше FileReader ? Я что-то не припомню таких проблем в этом случае. |
|||
|
||||
Connie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 1 Всего: 9 |
ecologist, потому что нужно сделать конверсию UTF8, а уже поверх этого используется BufferedReader, а он то читает построчно.
|
|||
|
||||
Alexander1966 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Работает и с первой строчкой.
Файл создаю в ASPLinux. Midnight Commander Locale=UTF-8.RU без BOM - это точно Это сообщение отредактировал(а) Alexander1966 - 14.10.2008, 17:00 Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |