java - 在 Java 中将 StreamWriter 转换为 OutputStream?

标签 java io stream

我正在尝试使用 System.setOut 将 System.out 重定向到一个字符串,它需要一个 PrintStream。有什么方法可以将 StringWriter 转换为 Stream 以便我可以将它传递给 setOut?

最佳答案

你不能完全那样做,因为 StringWriter 是一个 Writer,而不是一个 Stream。但你可以这样做:

// create a ByteArray stream, which will be wrapped by a PrintStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
System.setOut(ps);

// print whatever you got
String result = baos.toString();

关于java - 在 Java 中将 StreamWriter 转换为 OutputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565508/

相关文章:

java - 类不是抽象的,不会重写抽象方法actionPerformed(ActionEvent)

io - 同时写入和读取数组的最惯用方式

Java 命令 lastModified() 在 Clojure 中不起作用

java - 如何将Windows命令输出写入文件?

c# - 可以使用 Dapper 流式传输大型 SQL Server 数据库结果集吗?

c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?

java - 如何将 Map<String, String> 转换为 Map<Long, String> ? (选项 : using guava)

java - Dagger2 模块 : how to obtain context to pass to the constructor of a class I want to provide

Scala:结束 Stream.iterate

Java 软件编辑器/语法高亮器