import java.io.*;
import java.util.Scanner;
public class fileCopy
{
public static void main(String []args) throws Exception
{
try{
if("Copy".equals(args[0]) || "copy".equals(args[0]))
{
File file1 = new File(args[1]); // 指定要操作的源文件路径
if(file1.exists()) //如果源文件存在
{
File file2 = new File(args[2]); // 指定要操作的目标文件路径
if(file2.exists())//如果目标文件存在
{
FileReader fr = new FileReader(args[1]); //创建一个FileReader对象 从磁盘读
BufferedReader br = new BufferedReader(fr); //创建一个BufferedReader对象
Scanner input = new Scanner(System.in) ;
System.out.print("是否要覆盖目标文件? (y/n) ");
String x= input.next();
if("y".equals(x)|| "Y".equals(x))
{
FileWriter fw =new FileWriter(args[2]); //创建一个FileWriter对象 写到磁盘
BufferedWriter bw =new BufferedWriter(fw); //创建一个BufferedReader对象
if(br.ready())
{
String tmp=null;
while((tmp=br.readLine())!=null)
{
bw.write(tmp); //写一行
bw.newLine(); //写一个换行符
}
}
bw.flush(); //清空缓存
bw.close(); //关闭流
fw.close(); //关闭流
br.close(); //关闭流
fr.close(); //关闭流
System.out.println("成功覆盖文件!");
}
else
{
FileWriter fw =new FileWriter(args[2],true); //创建一个FileWriter对象 写到磁盘
BufferedWriter bw =new BufferedWriter(fw); //创建一个BufferedReader对象
if(br.ready())
{
String tmp=null;
while((tmp=br.readLine())!=null)
{
bw.write(tmp); //写一行
bw.newLine(); //写一个换行符
}
}
bw.flush(); //清空缓存
bw.close(); //关闭流
fw.close(); //关闭流
br.close(); //关闭流
fr.close(); //关闭流
System.out.println("成功追加文件!");
}
}
else
{
FileReader fr = new FileReader(args[1]); //创建一个FileReader对象 从磁盘读
BufferedReader br = new BufferedReader(fr); //创建一个BufferedReader对象
FileWriter fw =new FileWriter(args[2]); //创建一个FileWriter对象 写到磁盘
BufferedWriter bw =new BufferedWriter(fw); //创建一个BufferedReader对象
System.out.println("不存在目标文件,正在自动生成一个新文件!");
if(br.ready())
{
String tmp=null;
while((tmp=br.readLine())!=null)
{
bw.write(tmp); //写一行
bw.newLine(); //写一个换行符
}
}
bw.flush(); //清空缓存
bw.close(); //关闭流
fw.close(); //关闭流
br.close(); //关闭流
fr.close(); //关闭流
}
}
else
{
System.out.println("源文件不存在!");
}
}
else
{
System.out.println("输入错误!");
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}