首页 > 代码库 > (六)两种方式将一个文件的内容复制到另一个文件(第二种方式效率更高,第一种一个字符一个字符的读写,第二种一个数组一个数组的读写)

(六)两种方式将一个文件的内容复制到另一个文件(第二种方式效率更高,第一种一个字符一个字符的读写,第二种一个数组一个数组的读写)

一:将一个文件复制给另一个文件,每次读取一个字符
import
java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;public class CopyFile { /** * 需求:将一个文件复制给另一个文件 * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub //读取一个已有的文件 FileReader fr = new FileReader("D:\\log.txt"); //创建一个目的用于存储读到的数据 FileWriter fw = new FileWriter("D:\\fuyanan.txt"); //频繁的读取数据,每次读取一个字符 int ch = fr.read(); while((ch = fr.read() )!= -1){ fw.write(ch); } //关闭数据流 fw.close(); fr.close(); }}

 二、将一个文件复制到另一个文件,每次读取buf个长度

import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class CopyFile2 {    private static final int BUFFER_SIZE = 1024;    /**     * @param args     * @throws IOException     */    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        FileReader fr = null;        FileWriter fw = null;        try {            fr = new FileReader("D:\\log.txt");            fw = new FileWriter("D:\\fuluolin.txt");            // 创建一个临时容器,用于缓存读取到的字符            char[] buf = new char[BUFFER_SIZE];            // 定义一个变量记录读取到的字符数,(其实就是往数组里装字符)            int len = 0;            while ((len = fr.read(buf)) != -1) {                fw.write(buf, 0, len);            }        } catch (Exception e) {            throw new RuntimeException("读写失败");        } finally {            if (fw != null)                fw.close();            if (fr != null)                fr.close();        }    }}

 

(六)两种方式将一个文件的内容复制到另一个文件(第二种方式效率更高,第一种一个字符一个字符的读写,第二种一个数组一个数组的读写)