用java语言编写一个应用程序,完成文件的拷贝功能,文件名从命令行得到

2024-12-02 04:16:19
推荐回答(3个)
回答1:

import java.io.*;

public class Copy {
public static void main(String args[]){
if(args.length!=2){
System.out.println("参数不正确,无法完成复制!正确用法:");
System.out.println("java Copy 源文件名 目的文件名");
System.exit(0);
}
copyFile(args[0],args[1]);
}

public static void copyFile(String src,String obj){
FileInputStream fis=null;
FileOutputStream fos=null;
try{
fis=new FileInputStream(src);
fos=new FileOutputStream(obj);
}catch(FileNotFoundException e){
System.out.println("文件不存在,请检查您的输入:");
}catch(IOException e){
e.printStackTrace();
}

try{
int b;
while((b=fis.read())!=-1){
fos.write(b);
}
fos.flush();
System.out.println("文件复制成功!");
}catch(IOException e){
System.out.println("文件写入错误!");
}
}
}

回答2:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

public static void main(String[] args) { // 在这儿规定只允许输入2个参数,即第一个参数为原文件地址,第二个参数为目标地址
if(args.length != 2) { // 如果参数数量不是两个,系统退出
System.exit(-1);
}

File inputFile = new File(args[0]);
File outputFile = new File(args[1]);
BufferedReader br = null;
BufferedWriter bw = null;

String lineData = "";

try {
br = new BufferedReader(new FileReader(inputFile));
bw = new BufferedWriter(new FileWriter(outputFile));
while((lineData = br.readLine()) != null) { // 读数据
bw.write(lineData); // 写数据
bw.newLine();
}
// 关闭流
bw.flush();
bw.close();
br.close();
System.out.println("Copy Success!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

回答3:

这个程序的原理是,你先找到文件,然后拷贝,同时对拷贝的文件进行重命名,如果是的话,我可以告诉你,去查API,里面有现成的方法,只要你好好读读就会懂了。
至于说从命令行得到文件的名字,你可以用流的思想,其实方法是很多的。