在Java中,将输出从Java .io. outputstream管道到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构造函数,代码页可以是String或java.nio.charset.Charset的实例。可能的值为java.nio.charset.StandardCharsets.UTF_8。
方法toString()只接受String作为代码页参数(Java 8)。
我会使用ByteArrayOutputStream。完成后,你可以调用:
new String( baos.toByteArray(), codepage );
或更好:
baos.toString( codepage );
对于String构造函数,代码页可以是String或java.nio.charset.Charset的实例。可能的值为java.nio.charset.StandardCharsets.UTF_8。
方法toString()只接受String作为代码页参数(Java 8)。