1 回答

HUWWW
TA貢獻1874條經(jīng)驗 獲得超12個贊
不,它不等價。
JavadocswriteBytes說
將字符串作為字節(jié)序列寫出到底層輸出流。字符串中的每個字符通過丟棄其高八位按順序?qū)懗觥?/p>
因此,除了 ASCII 字符串外,這將無法正常工作。
你應(yīng)該做的
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 這樣的底層協(xié)議。
添加回答
舉報
0/150
提交
取消