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