作业要求

  • 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:

    • java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
    • java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

思路

  • 从指定文件读取字符串型变量,根据命令行输入的“-tx”或“-xt”判断,将十进制转为二进制或将二进制转为十进制,再输出。

产品代码

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

测试结果

  • java MyCP -tx XXX1.txt XXX2.bin

  • java MyCP -xt XXX1.bin XXX2.txt

遇到的问题

1.问题:当在idea中运行的时候,出现了这个问题。



解决方案:询问同学发现也有这种情况,具体原因是什么不清楚,但是在虚拟机中可以运行。

2.问题:第一次在虚拟机中运行出现了无法加载主类。

解决方案:最开始把编译出来的文件和txt与bin分开了,帮他们放一起时又可以了。

代码托管

最新文章

  1. XSS 前端防火墙 —— 天衣无缝的防护
  2. T4批量生成多文件
  3. ruby中将数组转换成hash
  4. C++指针的引用
  5. ExtJS4.2学习(12)基于表格的右键菜单(转)
  6. Cracking the coding interview--Q2.2
  7. PowerShell因为在此系统中禁止执行脚本解决方法
  8. Java的HashCode
  9. POJ 2152 Fire
  10. Mybatis学习(6)动态加载、一二级缓存
  11. TripleDES加密解密
  12. codeforces8A
  13. 【转】最近很火的 Safe Area 到底是什么
  14. WPF 创建自定义控件及自定义事件
  15. avalonjs 中的if else实现的几种方法
  16. linux通配符含义
  17. Linux&Unix命令
  18. 2018.10.20 NOIP模拟 巧克力(trie树+dfs序+树状数组)
  19. 使用FASTJSON做反序列化的时间格式处理
  20. R包安装失败failed to download mirrors file

热门文章

  1. 2018.9青岛网络预选赛(H)
  2. SQL Server 窗口函数详解:OVER()
  3. Python基础【day02】:数据运算(二)
  4. redis工具类 ----RedisPoolUtil
  5. JavaScript中的栈和堆内存,作用域
  6. 骨骼动画的原理及在Unity中的使用
  7. WebSocket实战之——JavaScript例子
  8. C++ 中 #ifndef, #define, #endif 宏定义
  9. Python的虚拟环境virtualenv
  10. A - A Secret (扩展kmp)