转自:
下文讲述java中Reader类的简介说明,如下所示:
Reader是一个抽象类 它是所有以字符为单位的输入流的父类
Reader类的构造函数
//创建一个新的字符流 reader,其重要部分将同步其自身的 reader protected 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类图
img
java Reader类的实现类简介说明
BufferedReader: 从流里面读取文本 通过缓存的方式提高效率 读取的内容包括字符、数组和行。缓存的大小可以指定,也可以用默认的大小 InputStreamReader:将字节翻译成字符的,可以处理乱码问题 FileReader:方便读取字符文件的
例
使用read()读取单个字符并输出
import java.io.*; class TestClass { public static void printInfo(Object obj) { System.out.print(obj); } public static void main(String[] args)throws IOException { //创建一个文件读取流对象与指定名称的文件相关联起来。 //要保证该文件是已经存在的。当文件不存在时,则会发生异常(FileNotFoundException) FileReader fr = new FileReader("D:\\test\\java265.txt"); //调用读取流对象的read方法。 //read方法:一次读取一次字符,而且会自动往后面读取字符。 int ch = 0; while((ch=fr.read())!=-1) { printInfo((char)ch); } /* while(true) { int ch = fr.read(); if(ch==-1) break; printInfo((char)ch); //读取文件中的一个字符 } */ fr.close(); } }