把java的System.out.println()写的复杂一点
时间: 2024-05-10 15:16:33 浏览: 77
下面是一个比较复杂的写法,将输出分别写入不同的缓冲区,然后再将缓冲区的内容输出到控制台:
```java
PrintStream console = System.console();
BufferedOutputStream bos = new BufferedOutputStream(console.writer());
PrintStream ps1 = new PrintStream(bos);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps2 = new PrintStream(baos);
System.setOut(ps1);
System.setErr(ps2);
// 输出内容
System.out.println("Hello, world!");
// 将缓冲区内容输出到控制台
ps1.flush();
bos.flush();
console.flush();
// 将错误信息输出到控制台
ps2.flush();
System.err.write(baos.toByteArray());
System.err.flush();
```
阅读全文