需求:复制文本文件
分析:
由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
而字符流有5种复制的方式:
首先写main方法
public static void main(String[] args) throws IOException {
// 数据源
String startfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\start.txt";
// 目的地
String endfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\end.txt"; //method1(startfile,endfile);
//method2(startfile,endfile);
//method3(startfile,endfile);
//method4(startfile,endfile);
method5(startfile,endfile); }
第一种方式:基本字符流一次读取一个字符
private static void method1(String startfile,String endfile) throws IOException {
// 基本字符流一次读写一个字符
//封装数据源
FileReader fr = new FileReader(startfile);
//封装目的地
FileWriter fw = new FileWriter(endfile); //一次读写一个字符
int ch = 0;
while((ch = fr.read()) != -1){
fw.write(ch);
}
//释放资源
fr.close();
fw.close();
}
第二种方式:基本字符流一次读取一个字符数组
private static void method2(String startfile, String endfile) throws IOException {
// 基本字符流一次读写一个字符数组
FileReader fr = new FileReader(startfile);
FileWriter fw = new FileWriter(endfile); char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1){
fw.write(ch,0,len);//这里需要注意
}
fr.close();
fw.close();
}
第三种方式:缓冲字符流一次读取一个字符
private static void method3(String startfile, String endfile) throws IOException{
// 字符缓冲流一次读取一个字符
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
int ch = 0;
while((ch = br.read()) != -1){
bw.write(ch);
}
br.close();
bw.close(); }
第四种方式:缓冲字符流一次读取一个字符数组
private static void method4(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符数组
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
BufferedReader br = new BufferedReader(new FileReader(startfile));
char[] ch = new char[1024];
int len = 0;
while((len = br.read(ch)) != -1){
bw.write(ch,0,len);
}
br.close();
bw.close(); }
第五种方式:缓冲字符流一次读取一个字符串(熟练掌握)
private static void method5(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符串
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
String line = null;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine(); }
br.close();
bw.close(); }