我有一个从OutputStream
返回的HttpURLConnection
实例。我需要将UTF-8字符串写入流中。
我有2种方法:
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
来编写String?谢谢!
最佳答案
只需在OutputStreamWriter
的构造函数中只定义一次即可编码,而不用指定每次通过String
将UTF-8
编码为getBytes(Charsets.UTF_8)
的时间
此外,OutputStreamWriter
提供了许多便捷的方法来编写String
,例如write(String)
中没有的write(String, int, int)
,append(CharSequence)
,append(CharSequence, int, int)
和OutputStream
。