1

OutputStreamWriter 将 OutputStream 包装在 Writer 接口后面。如果我想要相反,我想要一个 Writer 的 OutputStream 接口怎么办?例如,我想将一个对象序列化为 StringWriter。

4

2 回答 2

3

Guava 有这样一个类:BaseEncoding.encodingStream(Writer)将 Writer 作为参数,并将其包装在 OutputStream 中。写入流的所有字节都是 baseXX 编码的(其中 XX 可以是 16、32、64,...),并作为字符写入包装的 Writer。

于 2013-08-19T20:09:52.073 回答
1

an 的语义OutputStreamWriter是获取文本并根据字符编码将其转换为字节。这是一种非常常见的模式(将低级字节解释为高级文本),因此将此类作为标准 Java API 的一部分并不奇怪。

所以你想要一个WriterOutputStream. 但是你忘了告诉我们你期望这样一个类的语义。我可以想象OutputStream包装 a 的几个用例Writer

  • 将字节转换为 Base64 编码的字符串
  • 将字节转换为十六进制值表
  • 假设字节流是加密文本消息:解密字节并写入原始未加密文本。
  • 假设字节流是某种测量设备的值:写一个包含测量值的人类可读表。

但是没有明显的默认用例可以广泛使用。所以WriterOutputStream标准库中没有类。但是没有人阻止您编写自己的此类。

于 2013-08-19T21:02:37.133 回答