第1章 FileReader类使用1.1 FileReader读数据一次读取一个字符1.1.1 案例代码五: package com.itheima_02; import java.io.FileReader; import java.io.IOException; /* * 需求:从文件中读数据并显示到控制台 * 读数据--输入流--FileReader * * FileReader: * FileReader(String fileName):传递文件名称 * * 输入流读文件的步骤: * A:创建输入流对象 * B:调用输入流对象的读数据方法 * C:释放资源 * * java.io.FileNotFoundException: fr.txt (系统找不到指定的文件。) */ public class FileReaderDemo { public static void main(String[] args) throws IOException { //创建输入流对象 // FileReader fr = new FileReader("fr.txt"); FileReader fr = new FileReader("FileWriterDemo.java"); //调用输入流对象的读数据方法 //int read():一次读取一个字符 /* //第一次读数据 int ch = fr.read(); System.out.println(ch); System.out.println((char)ch); //第二次读数据 ch = fr.read(); System.out.println(ch); System.out.println((char)ch); //第三次读数据 ch = fr.read(); System.out.println(ch); System.out.println((char)ch); //这是时候,我们发现代码的重复度很高,想用循环改进,但是不知道循环的结束条件是什么 ch = fr.read(); System.out.println(ch); ch = fr.read(); System.out.println(ch); //通过测试,我们知道,如果读取数据的返回值是-1的时候,就说明没有数据了,这也是我们循环的结束条件 */ int ch; //1:fr.read() //2:ch=fr.read() //3:ch != -1 while((ch=fr.read())!=-1) { //System.out.println(ch); //System.out.println((char)ch); System.out.print((char)ch); } //释放资源 fr.close(); } } 1.2 利用FileReader和FileWriter完成文件复制1.2.1 读一次写一次 1.2.1.1 案例代码六:package com.itheima_03; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 需求: * 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中 * * 文件复制也是有规律可循的,也就是说有套路。 * * 数据源: * FileWriterDemo.java -- 读数据 -- FileReader * 目的地: * Copy.java -- 写数据 -- FileWriter */ public class CopyFileDemo { public static void main(String[] args) throws IOException { //创建输入流对象 FileReader fr = new FileReader("FileWriterDemo.java"); //创建输出流对象 FileWriter fw = new FileWriter("Copy.java"); //读写数据 int ch; while((ch=fr.read())!=-1) { fw.write(ch); } //释放资源 fw.close(); fr.close(); } } 1.2.2 利用字符数组拷贝文件 1.2.2.1 案例代码七:package com.itheima_03; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 需求: * 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中 * * 数据源: * FileWriterDemo.java -- 读数据 -- FileReader * 目的地: * Copy.java -- 写数据 -- FileWriter */ public class CopyFileDemo2 { public static void main(String[] args) throws IOException { //创建输入流对象 FileReader fr = new FileReader("FileWriterDemo.java"); //创建输出流对象 FileWriter fw = new FileWriter("Copy.java"); //读写数据 char[] chs = new char[1024]; int len; while((len=fr.read(chs))!=-1) { fw.write(chs, 0, len); } //释放资源 fw.close(); fr.close(); } }
|