次のコードは、File のごく一部のみを 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を使用しています。なぜそのような動作を示すのか、どうすれば修正できるのだろうか。