Java将一个文件复制到另一个文件

时间:2015-11-26 15:10:32

标签: java

我的代码执行我想要的操作并复制指定的文件,但我只设置它只复制指定代码中的文件。我希望它从提供两个文件名的用户那里获取输入,并将一个文件复制到另一个文件中。我希望能够复制最终用户提供的任何文件。我现在只在那里复制这两个文件; report.txtreport.sav

fr = new FileReader("report.txt");
fw = new FileWriter("report.sav"); 

最终用户可能想要复制给定文件以外的文件,我该怎么做?

这是我的代码:

import java.io.*;

public class CopyFile {
    public static void main(String args[]) {

        FileReader fr = null;
        FileWriter fw = null;
        try {
            fr = new FileReader("report.txt");
            fw = new FileWriter("report.sav");
            int c = fr.read();
            while(c!=-1) {
                fw.write(c);
                c = fr.read();
            }
        } catch(IOException e) {
            e.printStackTrace();
        } finally {
            close(fr);
            close(fw);
        }
    }
    public static void close(Closeable stream) {
        try {
            if (stream != null) {
                stream.close();
            }
        } catch(IOException e) {

        }
    }
} 

1 个答案:

答案 0 :(得分:0)

实现此目的的简单方法是在JDK 1.7版本中使用java.nio.file.Files API。从main方法的参数中获取源文件名和目标文件名。

文件复制的示例代码:

import java.io.*;
import java.nio.file.*;

public class FileCopy{
    public static void main(String args[]){
        if ( args.length < 2){
            System.out.println("Usage: java FileCopy <source> <destination>");
            return;
        }
        try{
             Files.copy(Paths.get(args[0]), Paths.get(args[1]),StandardCopyOption.REPLACE_EXISTING);
         }catch(Exception err){
            err.printStackTrace();
         }

    }

}

用法(示例):java FileCopy FileCopy.java FileCopy1.java

有关Files API的详细列表,请查看oracle documentation