Java实现DOS中的Copy命令
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命令的更多相关文章
- Oracle数据库间的数据复制 - SQLPlus中的COPY命令
Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...
- 畸形的 dockerfile中的COPY命令-
dockerfile中的COPY是指COPY 指定目录的“子级目录”下所有的目录和文件,到指定目录中,这个shell中的cp命令大相径庭,使得很多人纳闷,怎么cpy过去的文件不是自己想要的
- DOS中的ECHO命令详解
1. 作为控制批处理命令在执行时是否显示命令行自身的开关 格式:ECHO [ON|OFF] 如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”. 2. 显示当前ECHO ...
- DOS中的CD命令详解
CD命令是改变子目录的命令.格式:CD [路径] . 值得明确的是:CD命令只能进入当前盘符中的文件夹,改变操作的根目录(改变操作盘符),则不需用cd.例如你当前是在c:盘下,要到d:盘,只需键入d: ...
- dos中执行cd命令切换不到对应的盘解决方法
可以使用cd命令,不过需要加参数 /d,如: cd /d e:
- Dockerfile中COPY命令的简单性
dockerfile中的COPY命令是不会拷贝目录结构的,它只会单纯把包含的所有文件拷贝到另一个目录中去. 相关链接:https://www.cnblogs.com/sparkdev/p/957324 ...
- Dockerfile 中的 COPY 与 ADD 命令
Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景. Build 上下文的概念 在使用 docker ...
- DOS中命令的格式
---------------siwuxie095 一.DOS中,命令使用格式的一般形式 用中文表达的形式为: [路径] 关键字 [盘符] [路径] 文件名 [扩展名] (参数) [参数 ...
- 【Docker】涨姿势,深入了解Dockerfile 中的 COPY 与 ADD 命令
参考资料:https://www.cnblogs.com/sparkdev/p/9573248.html Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令 ...
随机推荐
- js字符串和正则表达式
字符串的生成转换 你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: var myStr = num.toString(); // "19" var myStr ...
- angular4 组件通讯、生命周期
主要通讯形式 父组件通过属性绑定到子组件,子组件通过事件传递参数到父组件 父组件通过局部变量获取子组件的引用 父组件使用@ViewChild获取子组件的引用 两个不相关联的组件使用中间人模式交互 终极 ...
- KNN python实践
本文实现了一个KNN算法,准备用作词频统计改进版本之中,这篇博文是从我另一个刚开的博客中copy过来的. KNN算法是一个简单的分类算法,它的动机特别简单:与一个样本点距离近的其他样本点绝大部分属于什 ...
- 激活win10专业版
每180天激活一次
- C#中的DateTime
一.DateTime是值类型还是引用类型的探索 二.了解DateTime结构体 三.DateTime.Now和DateTime.UtcNow是怎么计算出来的 一.DateTime是值类型还是引用类型的 ...
- BZOJ1018[SHOI2008]堵塞的交通——线段树
题目描述 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总 ...
- BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap
题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1…N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...
- BZOJ1834[ZJOI2010]网络扩容——最小费用最大流+最大流
题目描述 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1.在不扩容的情况下,1到N的最大流: 2.将1到N的最大流增加K所需的最小扩容费用 ...
- M - Help Hanzo LightOJ - 1197 (大区间求素数)
题意: 求[a,b]之间的素数的个数 数很大...数组开不起 所以要想到转化 因为小于等于b的合数的最小质因子 一定小于等于sqrt(b),所以只需要求出来[0,sqrt(b)]的素数 然后取倍数删 ...
- Codeforces Round #404 (Div. 2)A,B,C
A. Anton and Polyhedrons 题目链接:http://codeforces.com/contest/785/problem/A 智障水题 实现代码: #include<bit ...