我有兴趣使用BufferedWriter.write()将字节数组写入磁盘。但是该方法需要一个字符数组。我必须将 byte[] 转换为 char[]。容易吧?好吧,我在 Clojure 中的第一次尝试未能将字节转换为字符。因此,我开始想知道为什么 BufferedWriter.write() 方法对想要 char[] 如此挑剔。
注意:OuputStream 有一个使用byte[] 的write方法。所以我的问题是关于在 BufferedWrite.write() 中需要 char[] 的框架设计选择。
问问题
86 次
2 回答
4
BufferedWriter
是 , 的一种Writer
,Writer
用于书写字符。要输出原始字节,您需要使用某种类型的OutputStream
- 在本例中为BufferedOutputStream
.
OutputStream
(和之间的桥梁Writer
是OutputStreamWriter
类。它Writer
接受字符,使用诸如 UTF-8 之类的方案将它们编码为字节,并将生成的字节提供给OutputStream
.)
于 2013-01-04T02:51:39.800 回答
1
它就在 Javadoc 类的第一行:
将文本写入字符输出流,缓冲字符,以便高效写入单个字符、数组和字符串。
实现的类Writer
是为文本输出设计的,而不是任意二进制数据。查看其他缓冲流,例如BufferedOutputStream
于 2013-01-04T02:50:29.160 回答