将 java.io.OutputStream 的输出通过管道传输到 Java 中的 String 的最佳方法是什么?
说我有方法:
writeToStream(Object o, OutputStream out)
它将某些数据从对象写入给定的流。但是,我想尽可能轻松地将此输出转换为字符串。
我正在考虑编写这样的课程(未经测试):
class StringOutputStream extends OutputStream { StringBuilder mBuf; public void write(int byte) throws IOException { mBuf.append((char) byte); } public String getString() { return mBuf.toString(); } }
但是有更好的方法吗?我只想做个测试!
我会用一个ByteArrayOutputStream. 完成后,您可以致电:
ByteArrayOutputStream
new String( baos.toByteArray(), codepage );
或更好:
baos.toString( codepage );
对于String构造函数,codepage可以是java.nio.charset.CharsetString的一个或一个实例。一个可能的值是java.nio.charset.StandardCharsets.UTF_8。
String
codepage
该方法toString()仅接受 aString作为codepage参数(支持 Java 8)。
toString()