1、FileReader类
FileReader继承自InputStreamReader类,InputStreamReader类继承自Reader类。
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) throws IOException {
//读取文字
FileReader fr = new FileReader("E:\\IO流\\java\\1.txt");
int ch = 0;
while ((ch = fr.read()) != -1) {
// 输出的字符对应的编码值
System.out.print(ch);
System.out.print((char) ch);
System.out.println();
}
//写入文字
FileOutputStream fos = new FileOutputStream("E:\\IO流\\java\\8.txt");
fos.write("读取文件".getBytes());//编码过程
fos.close();
}
}

2、使用FileWriter类向文件写入数据:
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("E:\\IO流\\java\\1.txt");
char []c={'n','i','h','a','o'};
String str="我爱java";
fw.write(c);
fw.write("\t\n"+"你好java"+"\t\n");//先编码
fw.write(str, 0, 2);
fw.flush();
fw.close();
}
}

3、应用(缓冲数组实现复制)
package pers.zzx.copy;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("E:\\IO流\\java\\001.txt");
FileReader fr = new FileReader("E:\\IO流\\java\\1.txt");
char[] buf = new char[1024];
int len = 0;
while ((len = fr.read(buf)) != -1) {
fw.write(buf, 0, len);
System.out.println(len);
}
System.out.println(len);
fw.close();
fr.close();
}
}