有人能解释一下
OutputStream
和Writer
之间的区别吗?我应该使用这两个类中的哪一个?OutputStream
和Writer
之间的区别吗?我应该使用这两个类中的哪一个?流(Streams)在字节级别上运作,它们可以向流中读取(InputStream)和写入(OutputStream)字节或字节列表。
读取器(Reader)/写入器(Writer)在流的基础上增加了字符概念。由于字符只能通过使用编码进行字节转换,因此读取器和写入器具有编码组件(可以自动设置,因为Java具有默认编码属性)。读取器读取(Reader)或写入器写入(Writer)的字符会被编码自动转换为字节并发送到流中。
OutputStream类会逐字节地向目标写入数据,而Writer类则会逐字符地向目标写入数据。
OutputStream
是一个可以写入信息的流。这个定义比较通用,因此有专门用于文件写入的特定OutputStream
。一个流只能写入字节数组。
Writer
提供了更多的灵活性,它们可以写入字符甚至字符串,并考虑到特殊编码。Writer
来完成这个任务。Writer
将字符串写入流中。” - Christoffer Hammarström读者/写者类层次结构是面向字符的,而输入流/输出流类层次结构是面向字节的。基本上有两种类型的流。字节流用于处理字节流,而字符流用于处理字符流。在字节流中,输入/输出流是层次结构顶部的抽象类,而在字符流层次结构中,Writer/Reader是顶部的抽象类。
干杯!