Я пытаюсь написать класс, который читает HTTP-запросы и ответы и анализирует их.Поскольку заголовки представляют собой обычный текст, читать их проще всего с помощью метода BufferedReader и readLine .Это, очевидно, не подходит для тела данных, поскольку оно может быть двоичным, поэтому я хочу переключиться на чтение необработанных байтов после того, как заголовки были прочитаны.
Сейчас я делаю что-то вроде этого:
InputStream input=socket.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(input));
BufferedInputStream binstream=new BufferedInputStream(input);
Проблема в том, что BufferedReader читает вперед и поглощает все двоичные данные из потока, прежде чем у меня есть шанс добраться до него с помощью binstream.
Есть ли способ запретить чтение за пределами новой строки для каждого вызова readLine ?Или есть ли лучший способ прочитать отдельные строки текста ASCII с последующими необработанными двоичными данными?