在Java框架中,为什么BufferedWriter类中没有接受字节数组的.write重载?

时间:2013-01-04 02:48:13

标签: java bufferedwriter

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

2 个答案:

答案 0 :(得分:4)

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

OutputStreamWriter之间的桥接是OutputStreamWriter类。它是一个Writer,它接受​​字符,使用UTF-8等方案将它们编码为字节,并将结果字节提供给OutputStream。)

答案 1 :(得分:1)

它位于Javadoc类的第一行:

  

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

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