Читать текст и двоичный файл из одного потока в Java - PullRequest
1 голос
/ 06 декабря 2011

Я хотел бы прочитать текст и двоичный файл из потока, где поток может быть файлом или URL-соединением.Оба потока имеют одинаковый формат, где есть текстовый заголовок ASCII, за которым следует большой двоичный блок данных.Я использую DataInputStream для этого.Для файлов я использую

DataInputStream dis = new DataInputStream(new FileInputStream(new File("test")));

Для URL-адресов, которые я использую (где uc инициализируется для указания URL-адреса):

DataInputStream dis = new DataInputStream(new BufferedInputStream(uc.getInputStream()));

После настройки DataInputStream,Я следую за этим с:

dis.readLine()
dis.read(buf);

Это работает, но я заметил, что readLine определен (хотя есть сообщений , которые ссылаются на его использование).Можно ли продолжать его использовать, так как мой текст ASCII?Если это не очень хорошая идея, и я согласен с рекомендацией JDK использовать BufferedReader, есть ли способ получить доступ как к тексту, так и к двоичному файлу?Я пытался получить BufferedReader, чтобы получить текстовый заголовок, но затем я получил неправильные двоичные данные при использовании базового потока, возможно, потому, что некоторые из них уже были использованы.

1 Ответ

0 голосов
/ 20 января 2012

Причина, по которой он устарел, заключается в том, что он не смог правильно преобразовать байты в символыПоскольку этот пример ограничен ASCII, проблем с его использованием нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...