Java Reader类

Reader是一个抽象类,它是以字符为单位的输入流的公共父类。

构造函数

protected Reader() //创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
protected Reader(Object lock) //创建一个新的字符流 reader,其重要部分将同步给定的对象。

方法

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) //跳过字符。

Reader类图

java Reader类图

BufferedReader  从流里面读取文本,通过缓存的方式提高效率,读取的内容包括字符、数组和行。缓存的大小可以指定,也可以用默认的大小,大部分情况下,默认大小就够了。

InputStreamReader   把字节翻译成字符的,可以处理乱码问题。

FileReader   方便读取字符文件的。

例子

使用read()读取单个字符并输出

import java.io.*;
class FileReaderDemo
{
    public static void sop(Object obj)
    {
        System.out.print(obj);
    }
    public static void main(String[] args)throws IOException
    {
      //创建一个文件读取流对象,和指定名称的文件相关联起来。
      //要保证该文件是已经存在的。如果不存在,会发生异常,即FileNotFoundException    
      FileReader fr = new FileReader("F:\\myfile\\test.txt");
      
      //调用读取流对象的read方法。
      //read方法:一次读取一次字符,而且会自动往后面读取字符。
      int ch = 0;
      while((ch=fr.read())!=-1)
      {
          sop((char)ch);
      }
     
     /*
     while(true)
      {
        int ch = fr.read();
        if(ch==-1)
            break;
         sop((char)ch);  //读取文件中的一个字符 
      }
    */
      fr.close();
    }
}

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。