我的代码执行我想要的操作并复制指定的文件,但我只设置它只复制指定代码中的文件。我希望它从提供两个文件名的用户那里获取输入,并将一个文件复制到另一个文件中。我希望能够复制最终用户提供的任何文件。我现在只在那里复制这两个文件; report.txt
和report.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) {
}
}
}
答案 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。