java - 有没有办法在不关闭底层流的情况下关闭 Writer?

标签 java sockets io outputstream

我有一个套接字,我可以在其中写入一些字符数据和一些原始字节数据。对于字符数据,使用PrintWriter 更容易。对于原始字节数据,直接写入 OutputStream 会更容易。所以在我的代码中,我有这样的片段:

Writer writer = new PrintWriter(outputStream);
writer.write(someText);
...
writer.flush();
// No call to writer.close(), because that would close the underlying stream.

只要我在开始以其他方式写入流后注意不要写入此 Writer 就可以了。但我更愿意安全地知道,如果我不小心写入流(就像我关闭它时一样),我会得到一个 IOException

有没有办法在不关闭其底层流的情况下显式阻止将来写入 Writer

最佳答案

为什么? close() 只做两件事:(1) 刷新 writer 和 (2) 在嵌套的 writer 上调用 close()。如果您不想 (2),请自己调用 flush() 并且根本不要调用 close()

关于java - 有没有办法在不关闭底层流的情况下关闭 Writer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15193157/

相关文章:

java - 对同一端口的连续 JVM 绑定(bind)调用之间的限制

Python 套接字 : Send/receive multiple message

io - 使用相同的 key 写入现有的 Julia 数据文件

java - 想不出移动数组的方法

java - 在 IntelliJ 中调试时是否可以观察 BufferedImage 对象?

java - ByteArrayInputStream 与自己的类

c - 套接字选项是否从监听套接字跨 accept() 继承?

Java - 无法将对象作为文件写入目录

c# - 如何从 .Net 中的内存映射 I/O 端口读取?

java - 在 Axon 中重命名聚合后如何将聚合类型更改为 "upcast"