我在Java中有这个代码:
InputStreamReader isr = new InputStreamReader(getInputStream());
BufferedReader ir = new BufferedReader(isr);
String line;
while ((line = ir.readLine()) != null) {
//do stuff with "line"
}
Run Code Online (Sandbox Code Playgroud)
如果输入流包含以下内容:"hello \nhey\ryo\r \ngood-day",则每次迭代时都会跟随行变量:
我想一次读一行,但我想保留行终止字符:
我怎样才能做到这一点?有没有我可以使用的现成课程?
-
更新:
这是我正在尝试做的以及为什么我需要保持行尾字符(以及为什么EOL字符可能不同).
我正在阅读POST请求.它们由纯文本消息组成,其中行始终以\ r \n结尾(按标准规范).但是,POST请求可能包含二进制数据,这些数据可能包含看起来像Java Reader对象的终止字符的字节.
在我的示例中,正在上载图像.图像数据在一行上发送.但是,图像的二进制数据包含READER将其解释为"\n","\ r"或有时"\ r \n"的字节,如果这两个字节碰巧彼此相邻的话.
我必须一次读取一行的POST请求,因为它是如何工作的.我想,我可以阅读所有内容然后解析整个事情.但这并不高效,尤其是在上传大文件(比如说1024 MiB)的情况下.