復(fù)制文本文件的5種方式
- A:利用基本流一次讀寫一個字符
- B:利用基本流一次讀寫一個字符數(shù)組
- C:利用緩沖流一次讀寫一個字符
- D:利用緩沖流一次讀寫一個字符數(shù)組
- E:利用緩沖流的特有方法一次讀寫一個字符串
package com.itheima_06;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 復(fù)制文本文件(5種方式)
*
* 數(shù)據(jù)源:
* FileWriterDemo.java
* 目的地:
* Copy.java
*/
public class CopyFileTest {
public static void main(String[] args) throws IOException {
/*
method1("FileWriterDemo.java","Copy.java");
method2("FileWriterDemo.java","Copy.java");
method3("FileWriterDemo.java","Copy.java");
method4("FileWriterDemo.java","Copy.java");
method5("FileWriterDemo.java","Copy.java");
*/
String srcFileName = "FileWriterDemo.java";
String destFileName = "Copy.java";
// method1(srcFileName,destFileName);
// method2(srcFileName,destFileName);
// method3(srcFileName,destFileName);
// method4(srcFileName,destFileName);
method5(srcFileName,destFileName);
}
//基本流一次讀寫一個字符
public static void method1(String srcFileName,String destFileName) throws IOException {
//創(chuàng)建輸入流對象
FileReader fr = new FileReader(srcFileName);
//創(chuàng)建輸出流對象
FileWriter fw = new FileWriter(destFileName);
//一次讀寫一個字符
int ch;
while((ch = fr.read())!=-1) {
fw.write(ch);
}
//釋放資源
fw.close();
fr.close();
}
//基本流一次讀寫一個字符數(shù)組
public static void method2(String srcFileName,String destFileName) throws IOException {
//創(chuàng)建輸入流對象
FileReader fr = new FileReader(srcFileName);
//創(chuàng)建輸出流對象
FileWriter fw = new FileWriter(destFileName);
char[] chs = new char[1024];
int len;
while((len = fr.read(chs)) != -1) {
fw.write(chs,0,len);
}
//釋放資源
fw.close();
fr.close();
}
//緩沖流一次讀寫一個字符
public static void method3(String srcFileName,String destFileName) throws IOException {
//創(chuàng)建緩沖流輸入對象
BufferedReader br = new BufferedReader(new FileReader(srcFileName));
//創(chuàng)建緩沖流輸出對象
BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
//一次讀寫一個字符
int ch;
while((ch = br.read()) != -1) {
bw.write(ch);
}
//釋放資源
bw.close();
br.close();
}
//緩沖流一次讀寫一個字符數(shù)組
public static void method4(String srcFileName,String destFileName) throws IOException {
//創(chuàng)建輸入流對象
BufferedReader br = new BufferedReader(new FileReader(srcFileName));
//創(chuàng)建輸出流對象
BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
//一次讀寫一個字符數(shù)組
char[] chs = new char[1024];
int len;
while((len = br.read(chs))!=-1) {
bw.write(chs,0,len);
}
//釋放資源
bw.close();
br.close();
}
//緩沖流一次讀寫一個字符串(推薦)
public static void method5(String srcFileName,String destFileName) throws IOException {
//創(chuàng)建輸入流對象
BufferedReader br = new BufferedReader(new FileReader(srcFileName));
//創(chuàng)建輸出流對象
BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName));
//一次讀寫一個字符串
String line;
while((line = br.readLine())!=null) {
bw.write(line);
bw.newLine();
bw.flush();
}
//釋放資源
bw.close();
br.close();
}
}