/ 在java中Reader是字符输入流,可以将文件中的数据读取到java程序中。 // Reader是字符输入流的顶层父类,是一个抽象类。 如果要用,需要使用子类。 // 最常用的子类叫做FileReader。 // 字符输入流可以以字符为单位进行读取,这样就可以读取中文了。 // // FileReader的构造方法: // FileReader(File file): 传递一个File类型的文件 // FileReader(String fileName): 传递一个String类型的文件路径 // // FileReader里面的其他方法: // int read(): 一次读取一个字符。返回值为读取到字符。如果读取结束返回-1 // int read(char[] cbuf):一次读取一个字符数组。 // // 读取的步骤: // 1. 创建一个FileReader对象,绑定一个目的地 // 2. 调用read方法进行读取。 // 3. 释放资源 public class Demo01Reader { public static void main(String[] args) throws IOException { //创建字符流FILEREADer对象,绑定目标文件 FileReader fr = new FileReader("E:\\masm5\\ccc.txt"); //开始读取,一次读取一个字符数组 int i; while ((i = fr.read()) != -1) { // 条件做的事情 // 1. 使用字符输入流读取一个字符 // 2. 把读取到的字符赋值给变量i // 3. 判断i是否不等于-1,如果不是-1表示读取到了数据,那么就在循环中处理 System.out.print((char) i); } //释放资源 fr.close(); } }
//读取字符数组 public class Dem02Reader { public static void main(String[] args) throws IOException { //创建一个字符输入流对象 //创建一个字符输入流对象 FileReader fr = new FileReader("E:\\masm5\\ccc.txt"); //开始读取,一次读取一个字符数组。 char[] cArr = new char[1024];//定义的字符数组,用来保存每次读取到的数据 int len; //定义变量,用来保存每次读取到的长度 //开始while循环读取 while ((len = fr.read(cArr)) != -1) { /* 循环条件做的事情 1. 通过字符输入流调用read方法,将数据读取到cArr这个字符数组中 2. 将读取到的个数返回,并且赋值给变量len 3. 判断len是否不等于-1,如果不是-1表示读取到了内容,就在循环中进行处理。 */ System.out.print(new String(cArr, 0, len)); } //释放资源 fr.close(); } }