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类图
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原创文章,未经本站允许不得转载。