私は不思議な問題の前にいます。だから私の質問がある私はtoString()を呼び出すと、文字列の受信者のサイズが元のByteArrayOutputStreamのサイズよりも小さい理由
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
buffer.write(...); // I write byte[] data
// In debugger I can see that buffer's count = 449597
String szData = buffer.toString();
int iSizeData = buffer.size();
// But here, szData's count = 240368
// & iSizeData = 449597
:なぜszDataは、すべてのバッファのデータが含まれていないいくつかのコードが長い話よりも良いですか? (このコードを実行するスレッドは1つだけです)。そのような操作の後には、私はしたくないからです。szData.charAt(iSizeData - 1)がクラッシュします。
編集:szData.getBytes()。length = 450566。私が思っているエンコーディングの問題があります。最後に文字列の代わりにバイト[]を使用する方がいいですか?
おそらくマルチバイト文字ですか? – Shark
@Shark確かに、確かに:http://stackoverflow.com/questions/16270994/difference-between-string-length-and-string-getbytes-length –
@JozefChocholacekああ私は確かにそれは*確かに*しかし、 OPのバイト/文字を投稿すると、私は推測できます。 – Shark