import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
/**
*
* @author yf
*
* 2020-12-07 19:02:23
*/
public class ReaderDemo1 {
public static void main(String[] args) throws IOException {
// 需求:通过字符流读取数据
// 1.创建字符输入流对象
Reader reader = new FileReader("1.txt");
// 2.读取数据
/*
* int ch1 = reader.read(); System.out.println(ch1); int ch2 = reader.read();
* System.out.println(ch2); int ch3 = reader.read(); System.out.println(ch3);
* int ch4 = reader.read(); System.out.println(ch4);
*/
/*
* 优化上述的读法,用循环改进 又因为不知道循环次数,所以用while循环
*/
// 定义变量:用来接收读取到的字符
int ch;
/*
* (ch=reader.read())!=-1做了三件事
* 1.执行reader.read() 去文件中读取一个字符
* 2.执行 ch= reader.read() 将读取到的字符赋值给变量
* 3.ch = reader.read()) != -1 用读取到的字符内容和-1进行比较
*/
while ((ch = reader.read()) != -1) {
System.out.println(ch);
}
// 3.释放资源
reader.close();
}
}
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
/**
*
* @author yf
*
* 2020-12-07 19:02:23
*/
public class ReaderDemo2 {
public static void main(String[] args) throws IOException {
// 需求:通过字符流读取数据 一次读取一个字符数组
// 1.创建字符输入流对象
Reader reader = new FileReader("2.txt");
// 2.读取数据
// 定义字符数组
char[] chs = new char[3];
/*
* int len1 = reader.read(chs); System.out.println(chs); //a b c
* System.out.println(len1); //3
*
* int len2 = reader.read(chs); System.out.println(chs); //d e f
* System.out.println(len2); //3
*
* int len3 = reader.read(chs); System.out.println(chs); //g e f
* System.out.println(len3); //1
*
* int len4 = reader.read(chs); System.out.println(chs); //g e f
* System.out.println(len4); //-1
*/
/*
* 优化上述代码 while循环
*/
// 定义一个变量,记录读取到的有效字符数
int len;
while ((len = reader.read(chs)) != -1) {
// 将读取到的内容,转换成字符串,然后打印
/*
* chs:表示要操作的数组 0:其实索引 len:表示要操作的字符的个数
*/
String s = new String(chs, 0, len);
System.out.println(s);
}
// 3.释放资源
reader.close();
}
}