Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。
Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,
InputStream、OutputStream是用来处理8位元的流,
Reader、Writer是用来处理16位元的流。
而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。
值得说明的是,在这两种等级机构下,还有一道桥梁InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。
java.io.Reader 和 java.io.InputStream 组成了 Java输入类。Reader 用于读入16位字符,也就是 Unicode编码的字符;而 InputStream 用于读入 ASCII字符和二进制数据。
在 Java中,有不同类型的 Reader 输入流对应于不同的数据源:
FileReader 用于从文件输入;
CharArrayReader 用于从程序中的字符数组输入;
StringReader 用于从程序中的字符串输入;
PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。
相应的也有不同类型的 InputStream 输入流对应于不同的数据 源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流:
Socket 用于套接字;
URLConnection 用于 URL 连接。
这两个类使用 getInputStream() 来读取数据。
相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiadasong007/archive/2009/11/06/4776913.aspx
分享到:
相关推荐
字节流继承于 InputStream 和 OutputStream,字符流继承于 Reader 和 Writer。BufferedReader 和 BufferedWriter 是字符流的读写文本文件,且效率更高。FileInputStream 和 FileOutputStream 是字节流的读写文本文件...
此外,值得注意的是,虽然`InputStream`和`OutputStream`以及`Reader`和`Writer`之间存在类似的关系,但在设计上,`InputStream`和`OutputStream`更偏向于底层数据传输,而`Reader`和`Writer`则提供了更高级的字符...
在本文中,我们将详细解释 Java 中的内存溢出、String 对象的创建、对象的垃圾回收、Error、Exception 和 RuntimeException 的区别、hashCode 的作用、HashMap 和 Hashtable 的区别、Reader 和 InputStream 的区别、...
该资源提供了Java面试题的答案,涵盖了Java基础知识点,包括内存溢出、String对象、垃圾回收、Error、Exception和RuntimeException的区别、hashCode的作用、HashMap和Hashtable的区别、Reader和InputStream的区别、...
11. **Reader 和 InputStream**:Reader处理Unicode字符,InputStream处理ASCII字符和二进制数据。两者都是I/O流,但Reader适用于文本,InputStream适用于二进制数据。 12. **== 与 equals 的区别**:==比较基本...
"readerInputStream.doc"可能更深入地讲解了Reader和InputStream这两个常用的I/O流接口,它们分别用于处理字符流和字节流。 "Eclipse.doc"可能涵盖了使用Eclipse IDE进行Java开发的内容。Eclipse是流行的Java集成...
Reader和InputStream都是抽象类,Reader用于读取字符流(char或String),InputStream用于读取字节流(byte数组)。 8. HashMap中是否任何对象都可以作为key,用户自定义对象作为key有什么要求? 答案是,可以,...
`InputStream`、`OutputStream`、`Reader`和`Writer`是Java IO流的基础类,它们提供了读写文件的基本接口。本篇文章将深入讲解这些类的用法,并提供实际的代码示例,帮助初学者更好地理解和应用。 1. `InputStream`...
字节流有InputStream和OutputStream家族,而字符流则有Reader和Writer家族。 2. **节点流与处理流**: 节点流直接与数据源(如文件、网络连接)交互,例如FileInputStream和FileReader。处理流则不直接与数据源...
在Java中,Reader和InputStream类是处理字符和字节流的抽象基类,它们提供了读取数据的基本接口。例如,Reader类中的`read()`方法用于读取单个字符,而BufferedReader则通过缓冲区提高读取效率。在实际考试中,你...
7. **Reader和InputStream的区别**: - **类型**:Reader处理字符流,InputStream处理字节流。 - **应用**:Reader适合读取字符数据,如文本文件,InputStream适用于所有二进制数据。 8. **HashMap中的key要求**...
Reader和InputStream分别是处理字符流和字节流的抽象类。Reader适用于处理基于字符的数据,如文本文件,InputStream用于处理二进制数据,如图像或音频文件。它们构成了Java I/O流体系的基础,提供了丰富的子类来满足...
此外,`read`方法接受多种输入源,包括URL、Reader和InputStream,以及特定的语言标识。 3. **文档管理**:`OntDocumentManager`用于管理本体文档,支持文档导入和缓存,提高效率和响应速度。 ```java OntModel...
12. **Reader和InputStream的区别**: - Reader处理字符流,适用于处理文本数据。 - InputStream处理字节流,适用于处理二进制数据和ASCII文本。 13. **==和equals的区别**: - `==`比较基本类型时比较值,对于...
IO流是Java中的一种基本的数据交换方式,通过InputStream和OutputStream可以实现数据的读取和写入,而Reader和Writer可以实现字符流的读取和写入。IO流的知识点很多,需要认真学习和掌握。 InputStream的类型: * ...
2. **创建Reader**:为了读取文本内容,我们需要将`InputStream`转换为`Reader`。可以使用`InputStreamReader`实现,指定适当的字符编码,如UTF-8: ```java InputStreamReader isr = new InputStreamReader(bis, ...
对比InputStream和Reader,两者的主要区别在于处理的数据类型和层次结构。InputStream处理字节流,Reader处理字符流。字节流适用于处理任何类型的二进制数据,而字符流则专为文本数据设计,能够处理字符编码问题。...
这两个类也可以设计成具有通用性,可以接受不同的文件路径,或者直接操作`InputStream`和`OutputStream`,以适应各种场景。 总的来说,理解和使用`CsvReader.java`和`CsvWriter.java`需要掌握Java的文件I/O操作、...
Mybatis配置文件解析,SqlSessionFactoryBuilder的build方法接受Reader/InputStream/Configuration作为配置源,创建SqlSessionFactory实例。在接受Reader/InputStream作为配置源时,创建了XMLConfigBuilder实例来...
Mybatis配置文件解析组件,SqlSessionFactoryBuilder的build方法接受Reader/InputStream/Configuration作为配置源,创建SqlSessionFactory实例。在接受Reader/InputStream作为配置源时,创建了XMLConfigBuilder实例...