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();
}
}