网站:https://www.bilibili.com/video/BV1Wx411f7qN?p=166&spm_id_from=pageDriver
import java.io.FileReader;
import java.io.IOException;
import java.nio.CharBuffer;
public class Myread2 {
public static void main(String[] args) throws IOException {
//Myread2.Myread2Demo();
Myread2.Myread2UI();
}
public static void Myread2Demo() throws IOException {
//1. 创建字符输入对象
Readable reader = new FileReader("lib/2.txt");
//2. 读取数据
char[] chs = new char[3];
int len1 = reader.read(CharBuffer.wrap(chs));
System.out.println(chs); //abc
System.out.println(len1); //3
int len2 = reader.read(CharBuffer.wrap(chs));
System.out.println(chs); //def
System.out.println(len2); //3
int len3 = reader.read(CharBuffer.wrap(chs));
System.out.println(chs); //gef
System.out.println(len3); //1
//因为必须覆盖和3个字符(def)所以g+ef=gef
int len4 = reader.read(CharBuffer.wrap(chs));
System.out.println(chs); //gef
System.out.println(len4); //-1
//3. 关闭资源
//reader.close();
}
public static void Myread2UI() throws IOException {
Readable reader = new FileReader("lib/2.txt");
//定义字符数组
char[] chs = new char[3];
int len;
while ((len = reader.read(CharBuffer.wrap(chs))) != -1) {
//将读取到字符,转字符串
String s = new String(chs, 0, len); //abc def g
/* chs:表现操作数组
0 :表现开始索引
len:表现操作数组个数
*/
System.out.println(s);
}
}
}