在 Java 中将字符串写入 OutputStream 的最佳方法
Best way to write a String to OutputStream in Java
我有一个 OutputStream
实例,其中 return 来自 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
来写String?
谢谢!
Question: Why should we use OutputStreamWriter over OutputStream to
write String?
只需在OutputStreamWriter
的构造函数中定义一次只的编码,而不是每次都指定我们要将一个String
编码成[=12] =]感谢getBytes(Charsets.UTF_8)
此外,OutputStreamWriter
提供了许多方便的方法来编写 String
,例如 write(String)
、write(String, int, int)
、append(CharSequence)
和 append(CharSequence, int, int)
,您OutputStream
.
中没有
我有一个 OutputStream
实例,其中 return 来自 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
来写String?
谢谢!
Question: Why should we use OutputStreamWriter over OutputStream to write String?
只需在OutputStreamWriter
的构造函数中定义一次只的编码,而不是每次都指定我们要将一个String
编码成[=12] =]感谢getBytes(Charsets.UTF_8)
此外,OutputStreamWriter
提供了许多方便的方法来编写 String
,例如 write(String)
、write(String, int, int)
、append(CharSequence)
和 append(CharSequence, int, int)
,您OutputStream
.