我有這樣的代碼在Java中:在Java中從輸入流中讀取文本行的保持線終止字符(S)
InputStreamReader isr = new InputStreamReader(getInputStream());
BufferedReader ir = new BufferedReader(isr);
String line;
while ((line = ir.readLine()) != null) {
//do stuff with "line"
}
如果輸入流包含以下內容:「你好\ nhey \阪\ r \ ngood天」,然後行變量將在之後每次迭代:
- 你好
- 哎
- 喲
- 好達Ÿ
我想讀一次在一個線,但我想保持行終止字符(S):
- 你好\ n
- 哎\ r
- 喲\ r \ n
- 好天
我怎樣才能做到這一點?有沒有可以使用的現成課程?
-
更新:
這裏就是我想要做的,爲什麼我需要保持結束行的字符(以及爲什麼EOL字符可能會有所不同)。
我正在閱讀POST請求。它們由純文本消息組成,其中行總是以\ r \ n結尾(按照標準規範)。但POST請求可能包含二進制數據,其中可能包含看起來像Java Reader對象的終止字符的字節。
在我的示例中,正在上傳圖像。圖像數據在一行中發送。然而,圖像的二進制數據包含READER會解釋爲「\ n」,「\ r」或有時是「\ r \ n」的字節,如果這兩個字節碰巧彼此相鄰。
我必須一次讀取POST請求一行,因爲這是它的工作原理。我想,我可以讀一切,然後解析整個事情。但是這樣做效率不高,尤其是在上傳大文件(比如1024 MiB)文件時。
如果找不到更好的解決方案,可以在'while'循環中使用'BufferedReader.read()'實現'readLine'。 – pts 2010-12-15 00:49:40
我希望這個非常基本的東西已經完成了,人們可能會認爲它們可以讓BufferedReader的readLine()方法接受一個布爾值 - 如果是true,它也會包含行分隔符字符和如果錯誤,它會像現在這樣做。 – Mike 2010-12-15 00:55:07
特殊的最終角色是否重要?因爲我認爲的第一件事就是在行 – TheLQ 2010-12-15 00:57:48