获取一个OutputStream到一个字符串

问题:

将java.io.OutputStream的输出管道到Java中的String的最佳方式是什么?
说我有这个方法:

  writeToStream(Object o, OutputStream out)

其中将某些数据从对象写入给定流。但是,我想尽可能容易地将此​​输出转换为String。
我正在考虑写这样的课程(未经测试):

class StringOutputStream extends OutputStream {

  StringBuilder mBuf;

  public void write(int byte) throws IOException {
    mBuf.append((char) byte);
  }

  public String getString() {
    return mBuf.toString();
  }
}

但是有更好的方法吗?我只想运行一个测试!

回答:

我会使用ByteArrayOutputStream。完成后可以打电话:

new String( baos.toByteArray(), codepage );

或更好

baos.toString( codepage );

对于String构造函数,codepage可以是String或java.nio.charset.Charset的实例。一个可能的值是java.nio.charset.StandardCharsets.UTF_8
方法toString只接受一个String作为codepage参数(支持Java 8)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Get an OutputStream into a String

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 42 = 44