一、作业要求

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

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

二、作业思路(步骤)

1.题目理解

  • 我刚开始认为从二进制文件读取数据的方式和文本文件不同,想的过于复杂,就一直没有思路,最后发现直接使用输入输出流指向源文件和目标文件在用缓冲流处理就能完成文件的输入输出。
  • 这样,题目就简化成了从指定文件读取字符串型变量,根据命令行输入的“-tx”或“-xt”判断,将十进制转为二进制或将二进制转为十进制,再输出。

2.伪代码

将命令行输入转化为三部分的字符串
用输入流指向源文件
用输出流指向目标文件
用缓冲流处理
判断文本文件或二进制文件
完成进制转换
输出

3.产品代码

MyCP(课下作业)-LMLPHP

三、运行结果

1.java MyCP -tx XXX1.txt XXX2.bin

MyCP(课下作业)-LMLPHP

2.java MyCP -xt XXX1.bin XXX2.txt

MyCP(课下作业)-LMLPHP

四、作业中的问题及解决

问题

  • 在Windows的IDEA命令行运行MyCP会出现以下错误

MyCP(课下作业)-LMLPHP

解决

  • 上网查询后,好像是JDK的配置少了东西,于是又在虚拟机上进行尝试,成功了,目前Windows上的解决方法还在摸索中

MyCP(课下作业)-LMLPHP

五、码云链接

六、作业感想

  • 通过本次作业,我对命令行输入及文件的输入输出、缓冲流的使用有了更深层次的理解,虽然还有一些地方理解不是很清楚,但还是收获了很多,相信之后会做的更好!
05-11 14:04