0

我有兴趣使用BufferedWriter.write()将字节数组写入磁盘。但是该方法需要一个字符数组。我必须将 byte[] 转换为 char[]。容易吧?好吧,我在 Clojure 中的第一次尝试未能将字节转换为字符。因此,我开始想知道为什么 BufferedWriter.write() 方法对想要 char[] 如此挑剔。
注意:OuputStream 有一个使用byte[] 的write方法。所以我的问题是关于在 BufferedWrite.write() 中需要 char[] 的框架设计选择。

4

2 回答 2

4

BufferedWriter是 , 的一种WriterWriter用于书写字符。要输出原始字节,您需要使用某种类型的OutputStream- 在本例中为BufferedOutputStream.

OutputStream(和之间的桥梁WriterOutputStreamWriter类。它Writer接受字符,使用诸如 UTF-8 之类的方案将它们编码为字节,并将生成的字节提供给OutputStream.)

于 2013-01-04T02:51:39.800 回答
1

它就在 Javadoc 类的第一行:

将文本写入字符输出流,缓冲字符,以便高效写入单个字符、数组和字符串。

实现的类Writer是为文本输出设计的,而不是任意二进制数据。查看其他缓冲流,例如BufferedOutputStream

于 2013-01-04T02:50:29.160 回答