package cn.zhouzhou; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.util.HashMap; /* 一、字符流? 和字节流相似, 局限性:只能写文本文件,无法写其他文件。. 二、字符输出流和输入流 1.读Reader------------>输入流!-----理解 输入到程序! 2.写Writer------------>输出流! 输出到硬盘! 三、复制文件? 先读后写! */ public class 字符流 { public static void main(String[] args) { try { writer(); //字符输出流 } catch (IOException e) { e.printStackTrace(); } try { reader(); //字符输入流 } catch (IOException e) { e.printStackTrace(); } try { copy(); //字符流复制文件 } catch (IOException e) { e.printStackTrace(); }//字符流复制文件 } private static void copy() throws IOException { // 复制文件 先读后写! FileReader a1=new FileReader("d:\game\aa.txt"); FileWriter a2=new FileWriter("e:\aa.txt"); int len=0; char [] c=new char[1024*10]; while ((len=a1.read(c))!=-1) { a2.write(c); } } private static void reader() throws IOException { FileReader a1=new FileReader("d:\game\aa.txt"); //创建char数组 int len=0; char [] c=new char[1024]; //读取字符文件 read(c); while ((len=a1.read(c))!=-1) { System.out.println(new String(c,0,len)); } //结束 a1.close(); } private static void writer() throws IOException { //字符输出流 就是在硬盘上写文件! 每写一次,都要使用flush方法。烦! FileWriter a1=new FileWriter("d:\game\aa.txt"); a1.write(97); a1.flush(); char [] c={'z','y','r','f','b','m'}; a1.write(c);//打印字符串 a1.flush(); a1.write(c,1,2);//打印字符串中角标是1,2的元素! y r a1.flush(); a1.write("java"); a1.flush(); a1.close(); } }