亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java write(str.getBytes()) 與 writeBytes(str)

Java write(str.getBytes()) 與 writeBytes(str)

開心每一天1111 2022-12-28 13:56:10
使用 DataOutputStream 推送字符串時,我通常會執行以下操作:DataOutputStream dout;String str;dout.write(str.getBytes());我剛剛遇到 的writeBytes()方法DataOutputStream,我的問題是上面是否等同于:dout.writeBytes(str);如果不是,有什么區別,什么時候應該使用?
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

不,它不等價。


JavadocswriteBytes說


將字符串作為字節序列寫出到底層輸出流。字符串中的每個字符通過丟棄其高八位按順序寫出。


因此,除了 ASCII 字符串外,這將無法正常工作。


你應該做的


dout.write(str.getBytes(characterSet));

// remember to specify the character set, otherwise it become 

// platform-dependent and the result non-portable

要么


dout.writeChars(str);

要么


dout.writeUTF(str);

請注意,只有最后一個方法還寫入字符串的長度,因此對于其他方法,如果您打算稍后讀回它,您可能需要確切地知道您在做什么。


更大的問題是為什么你需要直接使用像 DataOutputStream 這樣的底層協議。


查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號