BufferedReader 在读取 Json 数据时
BufferedReader While Reading Json Data
为什么我们在用 BufferedReader
读取 JSON
数据时添加 \n
?
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while((line = reader.readLine())!=null){
sb.append(line + "\n");
}
你不是在添加一个\n
- 你是在放一个换行符,readLine()
有效地吞下了。例如,如果您的文本文件最初由 5 行组成:
line1
line2
line3
line4
line5
然后 reader.readLine()
将 return(在连续调用中)"line1"
、"line2"
、"line3"
、"line4"
、"line5"
...没有行结束处 BufferedReader
检测到行尾。
因此,如果您只有 sb.append(line)
,您最终会得到一个 StringBuilder
,其中包含:
line1line2line3line4line5
话虽如此,代码似乎 有点 毫无意义 - 它实际上只是规范化换行符。除非你真的需要它,否则你最好使用 call read
而不是 readLine()
并以这种方式复制文本...
为什么我们在用 BufferedReader
读取 JSON
数据时添加 \n
?
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while((line = reader.readLine())!=null){
sb.append(line + "\n");
}
你不是在添加一个\n
- 你是在放一个换行符,readLine()
有效地吞下了。例如,如果您的文本文件最初由 5 行组成:
line1
line2
line3
line4
line5
然后 reader.readLine()
将 return(在连续调用中)"line1"
、"line2"
、"line3"
、"line4"
、"line5"
...没有行结束处 BufferedReader
检测到行尾。
因此,如果您只有 sb.append(line)
,您最终会得到一个 StringBuilder
,其中包含:
line1line2line3line4line5
话虽如此,代码似乎 有点 毫无意义 - 它实际上只是规范化换行符。除非你真的需要它,否则你最好使用 call read
而不是 readLine()
并以这种方式复制文本...