我正在尝试编写一个读取HTTP请求和响应并解析它们的类.由于标题是普通文本,因此使用BufferedReader和readLine方法读取它们似乎最容易.这显然不会对数据体造成影响,因为它可能是二进制的,所以我想在读取头文件后切换到读取原始字节.
现在,我正在做这样的事情:
InputStream input=socket.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(input));
BufferedInputStream binstream=new BufferedInputStream(input);
Run Code Online (Sandbox Code Playgroud)
问题是BufferedReader在我有机会用binstream获取它之前正在预读并吞噬流中的所有二进制数据.
有没有办法阻止它在每次调用readLine时超出换行符读取?或者是否有更好的方法来读取原始二进制数据后的单行ASCII文本?