我有OutputStream
个实例从HttpURLConnection
返回。我需要在流中写一个UTF-8字符串。
我有两种方式:
使用OutputStream
本身
// write String
os.write("some utf8 text".getBytes(Charsets.UTF_8));
使用OutputStreamWriter
包装器
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, CharsetUtils.UTF_8));
OutputStreamWriter osw = new OutputStreamWriter(os, CharsetUtils.UTF_8);
osw.write("some utf8 text");
问题:我们为什么要使用OutputStreamWriter
而不是OutputStream
来编写字符串?
谢谢!
答案 0 :(得分:5)
问题:为什么我们应该使用OutputStreamWriter而不是OutputStream 写字符串?
只需在OutputStreamWriter
的构造函数中定义编码一次,而不是每次我们要将String
编码为UTF-8
,这要归功于{ {1}}
此外,getBytes(Charsets.UTF_8)
提供了许多方便的方法来编写OutputStreamWriter
,例如String
,write(String)
,write(String, int, int)
和append(CharSequence)
39; t在append(CharSequence, int, int)
。