【发布时间】:2013-01-02 21:32:51
【问题描述】:
目前我正在尝试从内容长度为 37743 的响应中读取一个不那么短的流。我正在使用 read(char[] buffer, int offset, int length),但在比较时并未读取所有流它到我正在阅读的原始 json 文件。我试图检查这是否是一个常见问题,但我找不到任何可能导致问题的原因:
- 字符串生成器的最大长度?
- char[] 的最大长度?
- 缓冲区长度? (目前为 8192)
- 条件不正确? (跟随sn-p)
while ((reader.read(buffer, 0, buffer.length)) != -1)
sb.append(String.valueOf(buffer)); //sb is the String builder
注意当缓冲区长度改变时,结果会再次改变,例如改成1024后,与8192缓冲区得到的结果相同,加上另一段与原始json字符串不一致的文本。
【问题讨论】:
-
不要做 String.valueOf(buffer) - StringBuilder 有一个 append(char[]) 方法
-
你的
BufferedReader是从哪里得到的?您是否正确考虑编码?
标签: java file buffer bufferedreader