1.字符输出流 Writer(只能写入文本文件)
1.1FileWriter类(writer的子类)
构造方法:
public class FileWriterDemo {
public static void main(String[] args) throws IOException {
//演示FileWriter 用于操作文件的便捷类。
FileWriter fw = new FileWriter("d:\text\fw.txt");
fw.write("你好谢谢再见");//这些文字都要先编码。都写入到了流的缓冲区中。
fw.flush(); //如果不刷新,数据不会到达目的地
//写一个字符数组
char[] c = {'a','b','c','d','e'};
fw.write(c);
fw.flush();
//写数组一部分
fw.write(c,2,2);
fw.flush();
fw.close();
}
}
//flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。
//刷新内存,将内存中的数据立刻写出。
//在最后工作完成时调用close()也可以刷新内存
//flush() 与 close() 区别在于 close()会关闭流,flush()一般用于处理中时需要将数据立即写出。
2.字符输入流Reader
构造方法
2.1FileReader
读取文件
package habin.file;
import java.io.FileReader;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("d:\a.txt");
int len = 0;
while((len=fr.read())!=-1){
System.out.print((char)len);
}
fr.close();
}
}
3.文件复制:
package habin.file;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
File file1 = new File("d:\a.txt");
File file2 = new File("f:\b.txt");
FileReader fr = new FileReader(file1);
FileWriter fw = new FileWriter(file2);
char[] c = new char[2014];
int len = 0;
while((len=fr.read(c))!=-1){
fw.write(c,0,len);
fw.flush();
}
fw.close();
fr.close();
}
}
上述代码实现将d盘下a.txt文件中的数据复制到了f盘下的b.txt中