Java Reader类

  • 格式:doc
  • 大小:106.50 KB
  • 文档页数:2

Java Reader类
抽象类java.io.Reader是所有字符输入流的父类,该类定义了以字符为单位读取
数据的基本方法,并在其子类进行了分化和实现。如果输入流的当前位置没有数据,
返回-1。出现错误则抛出IOException异常。
Reader类的层次结构如图12-13所示。

图12-13 字符输入流类层次
Reader类中定义的主要方法如表12-10所示。
表12-10 Reader类的主要方法
名称 解释
public int read() 读取一个字符,返回范围为0到65535之间int型值,如果到达
流的末尾返回-1。
public int read(char[] cbuf) 读取多个字符到字符数组cbuf中,如果到达流的末尾返回-1。
public int read(char[] cbuf, int off, int len) 读取len个字符存放到字符数组从off开始的位置中。

public void mark(int readAheadLimit) 标记输入流的当前位置。
public boolean markSupported() 测试输入流是否支持mark()方法。
public void reset() 重定位输出流。
public long skip(long n) 从输入流中最多向后跳n个字符,返回实际跳过的字符数。
public boolean ready() 返回输入流是否做好读的准备。
public void close() 关闭输入流。
上述方法在发生I/O错误时都抛出IOException异常。
Reader类的实例如下所示。
import java.io.File ;
import java.io.Reader ;
import java.io.FileReader ;
public class ReaderDemo01
{
// 异常抛出,不处理
public static void main(String args[]) throws Exception
{
// 第1步、使用File类找到一个文件
File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
// 第2步、通过子类实例化父类对象
Reader input = null ; // 准备好一个输入的对象
input = new FileReader(f) ; // 通过对象多态性,进行实例化
// 第3步、进行读操作
char c[] = new char[1024] ; // 所有的内容都读到此数组之中
int len = input.read(c) ; // 读取内容
// 第4步、关闭输出流
input.close() ; // 关闭输出流
// 把字符数组变为字符串输出
System.out.println("内容为:" + new String(c,0,len)) ;
}
}
执行上述代码,结果如图12-14所示。

图12-14 输出结果