JavaIO大纲
Reader
抽象类 父类,抽象类
- 源码摘抄:
public abstract class Reader
- 共性方法:
-int read()读取单个字符。 -int read(char[] cbuf) 将字符读入数组。 -abstract int read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。 -abstract void close()关闭该流并释放与之关联的所有资源。
FileReader
子类
- 创建对象:
-FileReader(String fileName) -FileReader(File file)
BufferedReader
子类
- 创建对象:
-BufferedReader(Reader in)
测试字符读取流
//这个类用来测试字符读取流
//效率上来讲:BufferedReader >FileReader,因为底层维护了一个char[],默认容量是8K
public class Test2_Reader {
public static void main(String[] args) {
method();//普通的字符读取流FileReader
method2();//高效的字符读取流BufferedReader
}
private static void method2() {
try {
// 1,创建字符读取流对象
Reader in = new BufferedReader( new FileReader("D:\\iotest\\1.txt") ) ;
// 2,开始读取数据,读取不到数据时read()返回-1
int b = 0;
while( ( b = in.read() ) != -1 ) {
System.out.println(b);
}
// 3,释放资源
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void method() {
try {
// 1,创建字符读取流对象
// Reader in = new FileReader(new File("D:\\iotest\\1.txt"));
Reader in2 = new FileReader("D:\\iotest\\1.txt");
// 2,开始读取数据,读取不到数据时read()返回-1
int b = 0 ;//定义变量,记录读到的数据
while( ( b = in2.read() ) != -1 ) {//只要有数据就一直读
System.out.println(b);
}
// 3,释放资源
in2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}