在 Java 中将字符串写入 OutputStream 的最佳方法

Best way to write a String to OutputStream in Java

我有一个 OutputStream 实例,其中 return 来自 HttpURLConnection。我需要将 UTF-8 字符串写入流中。

我有两种方法:

  1. 使用OutputStream本身

    // write String
    os.write("some utf8 text".getBytes(Charsets.UTF_8));
    
  2. 使用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.

中没有