下面的代码似乎只写了StringBuilder中文件的一小部分——为什么?
Reader rdr = new BufferedReader(new InputStreamReader(new FileInputStream(...)));
StringBuilder buf = new StringBuilder();
CharBuffer cbuff = CharBuffer.allocate(1024);
while(rdr.read(cbuff) != -1){
buf.append(cbuff);
cbuff.clear();
}
rdr.close();
更多信息:该文件比 CharBuffer 大,我也可以从调试器中看到 charbuffer 确实按预期填充。唯一进入 StringBuilder 的部分似乎来自文件中间的某个地方。我正在使用openJDK7。我想知道为什么它会表现出这样的行为以及如何解决这个问题。