0
我在一個奇怪的問題面前。一些代碼比長的故事更好:爲什麼當我調用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不包含所有緩衝區的數據? (只有一個Thread運行這段代碼),因爲在那種操作之後,我不想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