Java Как читать файл построчно. Каждая строка смешана с ascII и двоичным - PullRequest
1 голос
/ 27 января 2012

У меня есть файл с несколькими строками.

Для каждой строки формат

"String A" "String B" "binary data"

Что я хочу сделать, это добавить «Строка C» перед каждой строкой

"String C" "String A" "String B" "binary data"

Теперь я использую BufferedReader.readline (), похоже, что этот метод имеет проблемы при чтении двоичных данных.

Может кто-нибудь дать мне несколько советов по решению этого вопроса?

Ответы [ 3 ]

3 голосов
/ 27 января 2012

Если у вас есть двоичные данные в вашем файле, вы не должны использовать метод readLine (), который предполагает, что ваша строка оканчивается на «\ r», «\ n» или «\ r \ n».«Двоичные данные» могут содержать эту последовательность случайно и портить вашу readLine ().

Вообще говоря, вы не должны смешивать двоичные данные с текстовыми данными.

2 голосов
/ 27 января 2012

Гораздо более серьезная проблема, чем «двоичные данные могут содержать переводы строк», очевидно, что двоичные данные могут даже не содержать действительные кодовые точки Юникода! Следовательно, ни при каких обстоятельствах вы никогда не должны интерпретировать двоичные данные как текст, но другой способ вполне приемлем.

Что означает: считать данные в байтбуфер и интерпретировать их самостоятельно.

2 голосов
/ 27 января 2012

Я думаю, вы должны прочитать двоичные буферы и интерпретировать свой формат самостоятельно, то есть найти позицию байтов для извлечения текста и преобразовать их в строку.

Читатели не могут читать двоичные данные. Ни за что.

...