1,FileWriter
/*
* 字符输出流
* java.io.Writer 所有字符输出流的超类
* 写文件,写文本文件
*
* 写的方法 write
* write(int c) 写1个字符
* write(char[] c)写字符数组
* write(char[] c,int,int)字符数组一部分,开始索引,写几个
* write(String s) 写入字符串
*
* Writer类的子类对象 FileWriter
*
* 构造方法: 写入的数据目的
* File 类型对象
* String 文件名
*
* 字符输出流写数据的时候,必须要运行一个功能,刷新功能
* flush()
*/
FileWriter fw = new FileWriter("c:\\1.txt");
//写1个字符
fw.write(100); //记事本显示b
fw.flush();
//写1个字符数组
char[] c = {'a','b','c','d','e'};
fw.write(c); //显示abcde
fw.flush();
//写字符数组一部分
fw.write(c, 2, 2);
fw.flush(); //显示cd
//写如字符串
fw.write("hello"); 显示hello
fw.flush();
fw.close();
2,FileReader
/*
* 字符输入流读取文本文件,所有字符输入流的超类
* java.io.Reader
* 专门读取文本文件
*
* 读取的方法 : read()
* int read() 读取1个字符
* int read(char[] c) 读取字符数组
*
* Reader类是抽象类,找到子类对象 FileReader
*
* 构造方法: 绑定数据源
* 参数:
* File 类型对象
* String文件名
*/
FileReader fr = new FileReader("c:\\1.txt");
/*int len = 0 ;
while((len = fr.read())!=-1){
System.out.print((char)len);
}*/
char[] ch = new char[1024];
int len = 0 ;
while((len = fr.read(ch))!=-1){
System.out.print(new String (ch,0,len));
}
fr.close();
字符流复制文件
/*
* 字符流复制文本文件,必须文本文件
* 字符流查询本机默认的编码表,简体中文GBK
* FileReader读取数据源
* FileWriter写入到数据目的
*/
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("c:\\1.txt");
fw = new FileWriter("d:\\1.txt");
int len = 0;
char[] ch = new char[1024];
while((len = fr.read(ch))!=-1){
fw.write(ch,0,len);
fw.flush(); //必须刷新
}
}
此方法只能复制用记事本可以读取的文本内容,复制别的内容会导致文件打不开