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,本文尝试解释这两个命令 ...
随机推荐
- WebAssembly是什么?
现在的JavaScript代码要进行性能优化,通常使用一些常规手段,如:延迟执行.预处理.setTimeout等异步方式避免处理主线程,高大上一点的会使用WebWorker.即使对于WebWorker ...
- python常用命令和基础运算符
基础运算符 http://www.cnblogs.com/alex3714/articles/5465198.html 身份运算符:is is not成员运算符:in not in ##in 判断元素 ...
- python之文件读写和异常处理
# 文件读取.写入和异常处理操作举例 # date:2017-07-17 file_name = "D:/file_demo.txt" with open(file_name, ' ...
- maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
maven 引用另一个jar包 需要先打包在仓库里面 并在pom里面配置 才可以引用
- 一个本科学生对Linux的认知
我是一名大三的普通一本大学的软件工程的一名学生,学校开设了一些关于系统开发的课程,纸上得来终觉浅,学校的课程课时较短,想要在56个课时之内学会一些公司需要的技能,无疑是纸上谈兵,一门语言的学习,需要的 ...
- Go语言之unsafe包介绍及使用
unsafe内容介绍 type ArbitraryType int type Pointer *ArbitraryType func Sizeof(x ArbitraryType) uintptr f ...
- 使用nexus搭建maven私服教程详解
私服是什么 私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视.Nexus是常用的私用Maven服务器,一般是公司内部使用.下载地址是http://www.sona ...
- ansible创建vmware虚拟机
环境:vmware 虚拟化需求:如果业务部门一次提几十台甚至几百台虚拟机需求,一个个的手动创建肯定耗时 使用ansible vmware_guest 创建虚拟机,避免手动一台一台创建的纯手工 工作废话 ...
- 【BZOJ2434】【NOI2011】阿狸的打字机(AC自动机,树状数组)
[BZOJ2434]阿狸的打字机(AC自动机,树状数组) 先写个暴力: 每次打印出字符串后,就插入到\(Trie\)树中 搞完后直接搭\(AC\)自动机 看一看匹配是怎么样的: 每次沿着\(AC\)自 ...
- 【转】stm32CubeMx上移植自己的printf()和scanf()函数
要想printf()和scanf() 函数工作,我们需要把printf()和scanf() 重新定向到串口中.重定向是指用户可以自己重写C 的库函数,当连接器检查到用户编写了与C 库函数相同名字的函数 ...