JavaAPI笔记(五)——1. IO字符流 之 Reader相关类

JavaApi笔记(五)——IO流篇

一、字符流Reader类关系图

在这里插入图片描述

二、Reader类(抽象类

在这里插入图片描述
唯一字段:
在这里插入图片描述
当子类需要同步时,应该考虑使用reader抽象类提供的lock对象,而不是在子类中使用子类lock对象或synchronized方法

核心方法表:

序号方法声明功能描述
1protected Reader()创建一个新的字符流阅读器,其关键部分将在阅读器本身上同步。
2protected Reader(Object lock)创建一个新的字符流阅读器,其关键部分将在给定对象上同步。
3public int read()
throws IOException
读一个字符。该方法将阻塞,直到字符可用,发生I / O错误或达到流的结尾。
4public int read(char[] cbuf)
throws IOException
将字符读入数组。阻塞情况同上一条。
5public long skip(long n)
throws IOException
跳过指定数量字符。阻塞情况同第三条。
6public boolean ready()throws IOException告诉这个流是否准备好被读取。如果接下来的read()可以执行,则返回true,否则返回false。

三、 BufferedReader类(Reader类的直接子类)

描述:BufferedReader类可用于缓存数据,比如
BufferedReader in = new BufferedReader(new FileReader(“XXX.txt”));
缓存暂未read()或readLine()的数据可以提高读取效率,因为若无缓存则每次read()或readLine()都会从文件中读取字节转换成字符然后返回,这样效率会降低。
在这里插入图片描述
核心方法表:

序号方法声明功能描述
1BufferedReader(Reader in)
BufferedReader(Reader in, int sz)
创建使用默认大小的输入缓冲区的缓冲字符输入流。
创建使用指定大小的输入缓冲区的缓冲字符输入流。
2String readLine() throws IOException读一个字符
3public int read(char[] cbuf,int off,int len)
throws IOException
将字符读入数组的一部分
尝试通过重复调用基础流的read方法来读取尽可能多的字符
4public String readLine()
throws IOException
读一行文字。遇到换行符(’\ n’)或回车符(’\ r’)终止。
5public boolean ready()
throws IOException
告诉这个流是否准备好被读取。
如果缓冲区不为空,或者底层字符流准备就绪,则缓冲字符流就绪。
6Stream< String > lines()返回一个Stream ,其元素是从这个BufferedReader读取的行。
7public void close()
throws IOException
关闭流并释放与之相关联的任何系统资源

四、InputStreamReader类及其子类

  1. InputStreamReader类
    在这里插入图片描述
    InputStreamReader类核心方法
序号方法声明功能描述
1InputStreamReader(InputStream in)
InputStreamReader(InputStream in, String charsetName)
创建一个使用默认字符集的InputStreamReader。
创建一个使用给定字符集名称的InputStreamReader。
2String getEncoding()返回此流使用的字符编码的名称。
  1. FileReader类(FileInputStreamReader类直接子类)
    在这里插入图片描述
    常用构造方法如下:
    在这里插入图片描述

五、 FilterReader类(抽象类)及其子类

  1. FilterReader类在这里插入图片描述
    FilterReader类未对Reader类进行方法扩展,但其子类PushbackReader类扩展了。

  2. PushbackReader类
    在这里插入图片描述
    PushbackReader类核心方法表:
    序号|方法声明|功能描述
    -|-|-
    1|PushbackReader(Reader in,int size)
    PushbackReader(Reader in)|使用给定大小的推回缓冲区创建一个新的推回阅读器。
    用一个字符的后置缓冲区创建一个新的推回阅读器。
    2|void unread(int c)
    throws IOException|将单个字符复制到推回缓冲区的前端。
    c - 表示要推回的字符的int值
    3|void unread(char[] cbuf,int off,int len)
    throws IOException|通过将一部分字符复制到回推缓冲区的前端以推回。
    cbuf - 字符数组
    off - 第一个字符的推移偏移
    len - 要推回的字符数
    4|其他方法|未衍生新方法

六、CharArrayReader类(Reader类的直接子类)

在这里插入图片描述
核心方法表:

序号方法声明功能描述
1CharArrayReader(char[] buf)
CharArrayReader(char[] buf, int offset, int length)
从指定的字符数组中创建CharArrayReader。
从指定的字符数组根据指定位置创建CharArrayReader。
2其他方法未衍生新方法

七、 PipedReader类(Reader类直接子类)

在这里插入图片描述
关键方法:
在这里插入图片描述
若当前PipedReader对象已存在管道写入器(PipedWriter),则该方法会抛出异常。

  1. StringReader类(Reader类直接子类)
    在这里插入图片描述
    核心方法表:
序号方法描述功能描述
1StringReader(String s)创建一个新的字符串阅读器。
2其他方法未扩展Reader类方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值