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();

         } 

  }

 }


Java实现DOS中的Copy命令的更多相关文章

  1. Oracle数据库间的数据复制 - SQLPlus中的COPY命令

    Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...

  2. 畸形的 dockerfile中的COPY命令-

    dockerfile中的COPY是指COPY 指定目录的“子级目录”下所有的目录和文件,到指定目录中,这个shell中的cp命令大相径庭,使得很多人纳闷,怎么cpy过去的文件不是自己想要的

  3. DOS中的ECHO命令详解

    1. 作为控制批处理命令在执行时是否显示命令行自身的开关  格式:ECHO [ON|OFF]  如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”.  2. 显示当前ECHO ...

  4. DOS中的CD命令详解

    CD命令是改变子目录的命令.格式:CD [路径] . 值得明确的是:CD命令只能进入当前盘符中的文件夹,改变操作的根目录(改变操作盘符),则不需用cd.例如你当前是在c:盘下,要到d:盘,只需键入d: ...

  5. dos中执行cd命令切换不到对应的盘解决方法

    可以使用cd命令,不过需要加参数 /d,如: cd /d e:

  6. Dockerfile中COPY命令的简单性

    dockerfile中的COPY命令是不会拷贝目录结构的,它只会单纯把包含的所有文件拷贝到另一个目录中去. 相关链接:https://www.cnblogs.com/sparkdev/p/957324 ...

  7. Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景. Build 上下文的概念 在使用 docker ...

  8. DOS中命令的格式

    ---------------siwuxie095 一.DOS中,命令使用格式的一般形式 用中文表达的形式为: [路径]  关键字  [盘符]  [路径]  文件名  [扩展名]  (参数)  [参数 ...

  9. 【Docker】涨姿势,深入了解Dockerfile 中的 COPY 与 ADD 命令

    参考资料:https://www.cnblogs.com/sparkdev/p/9573248.html Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令 ...

随机推荐

  1. Delphi之Exception获得错误信息(简单好理解)

    Delphi之Exception获得错误信息 相关资料: http://www.cnblogs.com/hackpig/archive/2010/02/15/1668547.html 实例代码: 1 ...

  2. XE2 运行时 item not found的解决办法

    .net类库的原因. 将C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG下面的 machine.config.default 改名为machin ...

  3. BZOJ3160 万径人踪灭(FFT+manacher)

    容易想到先统计回文串数量,这样就去掉了不连续的限制,变为统计回文序列数量. 显然以某个位置为对称轴的回文序列数量就是2其两边(包括自身)对称相等的位置数量-1.对称有啥性质?位置和相等.这不就是卷积嘛 ...

  4. JavaScript无法运行问题

    [出现问题] JavaScript代码在html页面可以正常运行,在js文件夹下无法正常运行 [解决方案] 根据网上查的和自己错误的原因总结下. 1.引用Js的路径不对 ../ 表示上一级目录开始 . ...

  5. Hibernate 查询技术

    转载: http://blog.csdn.net/u014078192/article/details/24986475 一.Hibernate的三种查询方式(掌握) Hibernate中提供了三种查 ...

  6. ubuntu16.04 NFS系统挂载

    一:服务器端 step1:关闭防火墙 sudo ufw disable step2:安装nfs sudo apt-get install nfs-kernel-server step3: 打开/etc ...

  7. day30 hashlib模块

    hashlib 提供摘要算法 最常见的就是MD5,当然一般来说MD5已经被足够了 不管算法多不一样,但是摘要的功能是不变的 对于相同的字符串进行摘要,使用同一个算法得到的值总是不变的 不同算法的话,会 ...

  8. TiKV 源码解析系列文章(三)Prometheus(上)

    本文为 TiKV 源码解析系列的第三篇,继续为大家介绍 TiKV 依赖的周边库 rust-prometheus,本篇主要介绍基础知识以及最基本的几个指标的内部工作机制,下篇会介绍一些高级功能的实现原理 ...

  9. [luogu3455][POI2007]ZAP-Queries【莫比乌斯反演】

    题目描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得 ...

  10. shell(1)-磁盘shell

    查看硬盘的大小脚本[root@localhost ~]# vi repboot.sh#!/bin/bash# To show usage of /boot directory and mode of ...