OutputStream和Writer有什么区别?

时间:2012-05-30 12:42:47

标签: java outputstream

有人可以解释一下OutputStreamWriter之间的区别吗?我应该使用哪些课程?

5 个答案:

答案 0 :(得分:13)

Streams在字节级工作,可以读取(InputStream)和写入(OutputStream)字节或字节列表到流。

读者/作者在流的顶部添加字符的概念。由于字符只能通过使用编码转换为字节,因此读取器和编写器具有编码组件(由于Java具有默认编码属性,因此可以自动设置)。读取的字符(Reader)或写入的字符(Writer)将通过编码自动转换为字节并发送到流中。

答案 1 :(得分:8)

OutputStream 类逐字节写入目标 ,其中 Writer 类按字符写入目标字符

答案 2 :(得分:3)

OutputStream是可以写信息的流。这是相当普遍的,所以有专门的OutputStream用于特殊目的,如写入文件。流只能写入字节数组。

Writer提供了更大的灵活性,因为它们可以在考虑特殊编码的同时编写字符甚至字符串。

要采取哪一个实际上是你要写的东西。如果您已经有字节,则可以直接使用该流。如果您有字符或字符串,则需要将它们自己转换为字节,如果要将它们写入流中,或者需要使用Writer为您完成该工作。

答案 3 :(得分:0)

OutputStream使用裸字节,而Writer使用编码的字符。

答案 4 :(得分:0)

Reader / Writer类层次结构是面向字符的,输入流/输出流类层次结构是面向字节的。 基本上有两种类型的streams.Byte流,用于处理字节流和字符流以处理字符流。在字节流中,输入/输出流是层次结构顶部的抽象类,而编写器/读取器是抽象的字符串层次结构顶部的类。

More details here

干杯!!!