1. FileReader
1.1 方法1: 每次读一个字符
public class FileObj { /** 步骤: * 1. 实例化文件,指明此文件是被操作的对象 * 2. 提供具体的流,流作用于文件之上 * 3. 读取流中的数据 4. 流的关闭操作! */ @Test @Test public void test() throws IOException { File file = new File("E:\\helloTestIO\\hello.txt"); FileReader fileReader = new FileReader(file); char[] chars = new char[(int) file.length()]; // The number of characters read, or -1 // * if the end of the stream // * has been reached int data ; while ((data= fileReader.read()) != -1) { System.out.println((char) data); } try{ if(fileReader!=null){ fileReader.close(); } } catch (IOException e) { e.printStackTrace(); }}

1.2 方法2: 每次读限定长度的字符个数
/** 对read()操作升级,使用read的重载方法: 1. File类的实例化 2. fileReader流的实例化 3. 读入的操作细节/写出的操作 4. 资源的关闭 */ @Test public void test2() { FileReader fileReader = null; try { File file = new File("E:\\helloTestIO\\hello.txt"); fileReader = new FileReader(file); // 限定每次读的字符数量 char[] chars = new char[1024]; /*The number of characters read, or -1 * if the end of the stream * has been reached*/ int len; while ((len = fileReader.read(chars)) != -1) { for (int i = 0; i < len; i++) { System.out.print(chars[i]); } } } catch (IOException e) { e.printStackTrace(); } finally { if (fileReader != null) { try { fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } } ; }

2. FileWriter
2.1 分批写入数据
/** * 特点: * 1. 如果file不存在,则会自动创建 * 1. 如果存在,会覆盖原文件; * 2. 不同次数的写,会换行; * 步骤: * 1. 指定写出文件对象 * 2. 提供Filewriter实例,用于数据的写出 * 3. 写出的操作 * 4. 关闭流 */ @Test public void test3() throws IOException { File file = new File("hello.txt"); FileWriter fileWriter = new FileWriter(file,true); fileWriter.write("I have a dream!"); fileWriter.write("you need a dream!"); fileWriter.close(); }