Java将一个文件复制到另一个文件中
我的代码做了我想要的,它复制了一个指定的文件,但是,我只有在它只复制指定代码中的文件的情况下进行设置。我希望它从用户那里获取输入,用户给出两个文件名,然后它将一个文件复制到另一个文件中。我希望能够复制最终用户提供的任何文件。我现在知道它只复制了这两个文件;Java将一个文件复制到另一个文件中,java,Java,我的代码做了我想要的,它复制了一个指定的文件,但是,我只有在它只复制指定代码中的文件的情况下进行设置。我希望它从用户那里获取输入,用户给出两个文件名,然后它将一个文件复制到另一个文件中。我希望能够复制最终用户提供的任何文件。我现在知道它只复制了这两个文件;report.txt和report.sav fr = new FileReader("report.txt"); fw = new FileWriter("report.sav"); 最终用户可能希望复制给定文件之外的文件,我如何才能做到这
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) {
}
}
}
实现这一点的简单方法是在JDK1.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();
}
}
}
import java.io.*;
导入java.nio.file.*;
公共类文件副本{
公共静态void main(字符串参数[]){
如果(参数长度<2){
println(“用法:javafilecopy”);
返回;
}
试一试{
文件.copy(path.get(args[0])、path.get(args[1])、StandardCopyOption.REPLACE_EXISTING);
}捕获(异常错误){
err.printStackTrace();
}
}
}
用法(示例):java FileCopy FileCopy.java FileCopy1.java
查看oracle以获取文件API的详细列表。除了使用命令行参数外,还可以使用您可能希望查看以下快捷方式的文件。
Files.copy(Paths.get(args[0])、Paths.get(args[1])、StandardCopyOption.ATOMIC\u MOVE)代码>我实际上是在使用命令行和记事本来编写代码。文件上的任何链接。复制(path.get(args[0])、path.get(args[1])
?@Noah检查Java教程:还有,伙计!你是个救命恩人!我创建了一些随机文件,它复制了每个文件!简单而优雅的代码!我喜欢它!再次感谢!:)我想进一步改进这个答案。如果目的地已经存在,它应该覆盖而不是抛出异常。是的,它应该打印用法:java CopyFile fromFile to file
错误消息,因为输入参数的数量不正确。现在修改复制API以覆盖目标,但我明白你的意思。如果文件已经存在并抛出FileReadyExistsException