美文网首页
35. Java IO: Reader

35. Java IO: Reader

作者: kopshome | 来源:发表于2017-12-10 19:34 被阅读0次

想要查看此教程的目录请点击:Java IO教程目录贴地址


在Java API中,Java Reader类(java.io.Reader)是所有Reader的基类。Reader和InputStream不同的地方在于它是基于字符流的而不是字节流。换句话说,Reader是用来读取文本的数据的,而InputStream是用来读取原始的字节的。

Unicode字符

现在,许多应用都使用UTF (UTF-8 或 UTF-16)格式来存储文本数据。UTF-8中一个或多个字节来表示一个字符。UTF-16编码中一个字符用两个字节来表示。因此在使用UTF编码时,文本数据中的一个字节并不一定代码一个字符。如果你只是通过InputStream来读取字节然后把字节转换成字符,那么并不一定会得到你想要的结果。

我们有Reader相关类来解决这个问题。它们可以把字节转换成字符。你需要告诉Reader你要以什么编码格式来读取数据,这会在实例化Reader时设置(实际上时在你实例化其子类的时候)。

用Reader读取字符

Reader的 read()方法会返回一个int值,包含下一个要读取的的字符值。如果方法返回 -1 则说明已经没有数据了。也就是说,-1作为int值,而不是-1作为字节或char值。这是一个不同的地方。

Reader子类

你更多的会用Reader的子类而不是直接用Reader。Java IO包含了许多Reader的子类。例如InputStreamReader,CharArrayReader,FileReader等许多其他的。更多的内容可以去看“Java IO 概览”的相关章节。

Reader 和 数据源

文件,字符数组,网络socket等数据是Reader有代表性的数据源,这个也是在“Java IO 概览”有详细的描述。

相关文章

  • 35. Java IO: Reader

    想要查看此教程的目录请点击:Java IO教程目录贴地址 在Java API中,Java Reader类(java...

  • 系统学习 Java IO (十三)----字符读写 Reader

    目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所...

  • Java-I/O学习(7)

    Java-I/O学习(7) Reader 在Java API中,Java Reader类(java.io.Read...

  • 10. Java IO: Readers and Writers

    想要查看此教程的目录请点击:Java IO教程目录贴地址 Java IO中的java.io.Reader和java...

  • 字符流类库详解

    对着源码,理一理java.io中基于字符的I/O:Reader和Writer。 字符读取Reader java.i...

  • Java IO 概述

    Java IO 概述 InputStream,OutputStream,Reader和Writer 需要从某些源读...

  • 【JAVA IO】 JAVA Classic IO 源码浅析

    java.io 包含java经典的io api,从1.0引入,1.1时做了字符流方面的补充(reader writ...

  • go标准库:bufio

    Reader类 bufio.Reader包装了一个io.Reader对象,提供与io.Reader一致的接口,实现...

  • Java IO笔记(Reader/Writer)

    (最近刚来到简书平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看...

  • Java IO流

    IO流 在java.io.*包下,按数据流方向分为输入/输出流;按处理数据单位分为字符流(Reader/Write...

网友评论

      本文标题:35. Java IO: Reader

      本文链接:https://www.haomeiwen.com/subject/ervvixtx.html