字符输入流_Reader类&FileReader类介绍和字符输入流读取字符数据

字符输入流_Reader类&FileReader类介绍

java.io.Reader:用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率,附加的功能或两者。

构造方法:

protected Reader()
创建一个新的字符流阅读器,其关键部分将在阅读器本身上同步。
protected Reader(Object lock)
创建一个新的字符流阅读器,其关键部分将在给定对象上同步。 

 

 

 

 

定义所有子类共性的方法:

abstract void close()
关闭流并释放与之相关联的任何系统资源。
void mark(int readAheadLimit)
标记流中的当前位置。
boolean markSupported()
告诉这个流是否支持mark()操作。
int read()
读一个字符
int read(char[] cbuf)
将字符读入数组。
abstract int read(char[] cbuf, int off, int len)
将字符读入数组的一部分。
int read(CharBuffer target)
尝试将字符读入指定的字符缓冲区。
boolean ready()
告诉这个流是否准备好被读取。
void reset()
重置流。
long skip(long n)
跳过字符 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

字符输入流读取字符数据

字符输入流使用步骤:

  1.创建FileReader对象,构造方法中绑定要读取的数据源

  2.使用FileReader对象中的方法read读取文件

  3.释放资源

public class Demo05OutputStream {
    public static void main(String[] args) throws IOException, InterruptedException {
        FileReader fileReader = new FileReader("a.txt");
        char[] c = new char[1024];
        int len;
        /*
            String(char[] value):分配一个新的 String ,以便它表示当前包含在字符数组参数中的字符序列。
            String(char[] value, int offset, int count):分配一个新的 String ,其中包含字符数组参数的子阵列中的字符
         */
        while ((len=fileReader.read(c))!= -1){
            System.out.println(new String(c,0,len));
        }

        fileReader.close();
    }
}

运行结果:

 

posted @ 2022-07-18 13:07  monkey大佬  阅读(166)  评论(0)    收藏  举报