- 题目:编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
- 要求:MyCP支持两个参数:
- java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
- java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
- 要求:MyCP支持两个参数:
- 前置知识
- cp命令:
- 作用:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
- 参数:cp指令根据参数选择功能
- 具体参数功能参考 Linux 的cp命令
- cp命令:
-
具体实现
- 产品代码:
import java.io.*; public class MyCP {
public static void main(String args[]) {
String choose = args[0];
//获得第一个参数
String File1 = args[1];
//获得第二个参数:文件名
String File2 = args[2];
//获得第三个参数:文件名
File sourceFile = new File(File1);
//读取的文件
File targetFile = new File(File2);
//写入的文件
int ch = 0;
String result = "";
//转换结果
if (choose.equals("-tx")) {
ch = 1;
}
else if (choose.equals("-xt")) {
ch = 2;
}
//参数判断
else {
System.out.println("输入参数错误!");
System.exit(0);
}
//如果参数输入错误,退出程序
try {
FileWriter out = new FileWriter(targetFile);
//指向目的地的输出流
FileReader in = new FileReader(sourceFile);
//指向源的输入流
BufferedReader infile = new BufferedReader(in);
BufferedWriter outfile = new BufferedWriter(out);
//缓冲流
String number = infile.readLine();
if (ch == 1) {
int n, temp = Integer.parseInt(number);
for (int i = temp; i > 0; i = i / 2) {
if (i % 2 == 0)
n = 0;
else
n = 1;
result = n + result;
}
} else if (ch == 2) {
result = Integer.valueOf(number, 2).toString();
}
outfile.write(result);
outfile.flush();
outfile.close();
} catch (IOException e) {
System.out.println("Error " + e);
}
}
}
---
- 运行截图
- 参数为-tx时


- 参数为-xt时


---
- [码云托管链接](https://gitee.com/fzlzc/java2019/blob/master/src/MyCP.java)