package cn.itcast.ioread.demo;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo2 {
public static void main(String[] args) throws IOException {
// 使用read(char[])读取文本文件数据
/**
* 方法: public int read(char[] cbuf) throws IOException
*
* 功能:将字符读入数组。在某个输入可用、发生I/O错误或者已到达流的末尾前,此方法一直阻塞。
*
* 返回:读取的字符数,如果已到达流的末尾,则返回-1
*/
FileReader fr = new FileReader("demo.txt");// 该文件内容:abcde
char[] buf = new char[3];
// int num = fr.read(buf);//这里可以直接将读取到的字符存入事先建立的数组中
// System.out.println(num + ":" + new String(buf));//3:abc
//
// int num1 = fr.read(buf);
// System.out.println(num1 + ":" + new
// String(buf));//2:dec
//
// int num2 = fr.read(buf);
// System.out.println(num2 + ":" + new String(buf));//-1:dec
// 修改以上程序
// int num = fr.read(buf);
// //String构造函数,可以指定将数组中的某一段变成字符串
// System.out.println(num+":"+new String(buf,0,num));//3:abc
//
// int num1 = fr.read(buf);
// //因为只读取了num1个元素,也就是到num1为止,避免了dec的情况
// System.out.println(num1+":"+new String(buf,0,num1));//2:de
// fr.close();
// 再次修改程序
int len = 0;
while ((len = fr.read(buf)) != -1) {
System.out.print(new String(buf, 0, len));//abcde
}
}
//注:char[] buf = new char[3];中数组长度一般指定为1024的整数倍
}
20-IO流-07-IO流(字符流-FileReader-读取方式二)
最新推荐文章于 2024-08-10 22:20:39 发布