在Java中将String写入OutputStream的最佳方法

时间:2016-06-17 19:49:30

标签: java text utf-8 io outputstream

我有OutputStream个实例从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");
    
  3. 问题:我们为什么要使用OutputStreamWriter而不是OutputStream来编写字符串?

    谢谢!

1 个答案:

答案 0 :(得分:5)

  

问题:为什么我们应该使用OutputStreamWriter而不是OutputStream   写字符串?

只需在OutputStreamWriter的构造函数中定义编码一次,而不是每次我们要将String编码为UTF-8,这要归功于{ {1}}

此外,getBytes(Charsets.UTF_8)提供了许多方便的方法来编写OutputStreamWriter,例如Stringwrite(String)write(String, int, int)append(CharSequence) 39; t在append(CharSequence, int, int)