OutputStreamWriter的反转是什么

时间:2013-08-19 19:50:28

标签: java io

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

所以你想要一个WriterOutputStream。但是你忘了告诉我们你对这类课程所期望的语义。我可以想象OutputStream包裹Writer的几个用例:

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

但是没有明显的默认用例对广泛的用法有意义。因此标准库中没有WriterOutputStream类。但没有人会阻止你写下自己的这类课程。