学号20175313 《实现Linux下cp XXX1 XXX2的功能(一)》第九周
MyCP
一、题目要求
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
- java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
- java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
二、题目理解
Linux下cp XXX1 XXX2的功能:在命令行输入man cp
进行查看
三、需求分析
- 支持两个参数
- -tx参数:将文本文件(十进制数)转化为二进制文件
- -xt参数:将二进制文件转化为文本文件(十进制数)
- 支持在命令行中输入三个字符串
- 第一个字符串:文件的转化形式
- 第二个字符串:源文件
- 第三个字符串:目标文件
- 将二进制数转化为十进制数
- 将十进制数转化为二进制数
四、设计思路
- 问题1:如何实现在命令行中输入参数?
教材182页Example8_14.java中略微提到一点点。
- 解决方法:arges[]数组的使用
- 问题2:如何实现二进制文件与文本文件的相互转化,转化的形式是什么?
- 转化形式:
- 二进制文件转文本文件:十进制数一位最多占用4bit,所以依次读取二进制文件的内容,每次以4bit为标准,将每4位二进制转化为一位十进制数输入到文本文件中。
- 文本文件转二进制文件:与上面的想法类似,依次读取文本文件的内容,每次以1bit为标准,将每位十进制数转化为4位二进制数输入到二进制文件中。
- 转化过程:
二进制数转十进制数:
十进制数转二进制数:
五、伪代码分析
- 读取命令行输入的3个参数:arges[0]代表转化形式,arges[1]代表源文件,arges[2]代表目标文件。
- 当args[0]是“-tx”,每次读取文件名为args[1]文本文件中的1个字符,把它转为4位二进制数字写入到文件名为args[2]的二进制文件中去,直到文本文件中的所有字符读取完毕。
- 当args[0]是“-xt”,每次读取文件名为args[1]二进制文件中的4个字符,把它转为1位十进制数写入到文件名为args[2]的十进制文件中去,直到二进制文件中的所有字符读取完毕。
六、代码链接
七、代码实现过程中遇到的问题
问题1:读取长度readLength没有初始化。
- 解决方法:以前用C语言习惯了变量不进行初始化,以为没有问题,看到报错后,我还是惯常的没有考虑起初的初始化问题,而是一直在找程序中为什么readLength没有被赋值的问题。找了好久感觉没有bug啊,然后就死马当作活马医的让起初的readLength=0,进行了初始化,结果不报错了。看来java对于成员变量的初始化还是严格控制的。
问题2:程序编译时出现“编码GBK的不可映射字符”报错
- 我网上找了好多解决方法都没有效果,所以这个问题到现在都没有解决,所以后面我就在虚拟机上进行的编译运行。
问题3:直接将字符串与给定字符串常量进行比较,忘记应该使用equals方法,导致程序直接输出“Error”,然后退出。
解决方法:调用equals方法进行字符串之间的比较
问题4:将
String num=""
放在循环读取的外面,导致num叠加的上一次循环转化成的十进制数,产生输入溢出- 解决方法:将
String num=""
放在while循环的里面,使每一次要进行数据读取时num都是从空开始。 - 注意:
- 调用
public static String toBinaryString(int i)
方法进行十进制数转二进制数时,输入的参数的整数型,所以应该将字符型ch[0]-'0',将其字符转化为整数。 - 调用
public static int parseInt(String s,int radix)
方法进行二进制转十进制数时,返回的时int,所以应该在后面加上""
,使其转化为String型,后赋值给num。
- 调用
八、运行结果截图
九、参考资料
- 《Java2实用教程(第五版)》
- arges[]数组的使用
- 朱文远学长博客
- JDKTM 6 Documentation
学号20175313 《实现Linux下cp XXX1 XXX2的功能(一)》第九周的更多相关文章
- 学号20175313 《实现Linux下cp XXX1 XXX2的功能(二)》第九周
目录 MyCP2 一.题目要求 二.题目理解 三.需求分析 四.设计思路 五.伪代码分析 六.代码链接 七.代码实现过程中遇到的问题 八.运行结果截图 九.心得体会 十.参考资料 MyCP2 一.题目 ...
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...
- 《Linux下cp XXX1 XXX2的功能》的实现
<Linux下cp XXX1 XXX2的功能>的实现 一.题目要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyC ...
- 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
题目:编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能 要求:MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十 ...
- 20175303 Mycp实现Linux下cp xxx1 xxx2的功能
20175303 Mycp实现Linux下cp xxx1 xxx2的功能 一.题目要求 编写MyCP2.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP2支持两个参数: ja ...
- 编程实现类似Linux下cp功能
MyCP的代码实现 一.题目要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...
- 学号20175313 《实现Linux下od -tx -tc XXX的功能》第九周
目录 MyOD 一.题目要求 二.题目理解 三.需求分析 四.设计思路 五.代码链接 六.代码实现过程中遇到的问题 七.运行结果截图 八.参考资料 MyOD 一.题目要求 编写MyOD.java 用j ...
- 学号20175313 《实现Linux下Sort -t : -k 2功能》第十二周
目录 一.题目要求 二.题目理解 三.设计思路 四.代码实现 五.代码链接 六.运行结果截图 七.参考资料 一.题目要求 实现Linux下Sort -t : -k 2的功能 二.题目理解 -t 分隔符 ...
- linux下cp覆盖原so文件时引起的段错误原因确定
原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5694416.html 最近因为一个很有意思的段错误学习了一些新的东西. 当时现象是这样的,程序正在运行,系 ...
随机推荐
- RDay1-Problem 3 C
题目描述 初始给定n个卡片拍成一排,其中第i个卡片上的数为x[i]. 有q个询问,每次询问给定L和R表示询问区间[L,R]内的卡片所有出现了偶数次的数的异或和是多少. 输入 输入文件C.in 输入一行 ...
- JavaScript入门学习笔记(表单验证)
表单验证: 在数据被送到服务器之前对HTML表单中的输入数据进行验证,避免服务器频繁验证信息造成用户体验差. (1)表单数据是否为空 (2)输入的信息格式是否正确 (3)输入数据的类型是否正确 必填( ...
- centos7中设置nginx的systemctl启动方式
1.建立服务文件 (1)文件路径 vim /usr/lib/systemd/system/nginx.service (2)服务文件内容 [Unit] Description=nginx - high ...
- Windows Internals 笔记——作业
1.Windows提供了一个作业内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么.创建只包含一个进程的作业同样非常有用,因为这样可以对进程施加平时不能施加的限制. 2.如果进 ...
- 解决 for xml path encode 的问题
select stuff( (select ', <' + name + '>' from sys.databases where database_id > 4 order by ...
- springmvc的ModelMap,前台取值
利用 ${user.id}或者‘${user.id}’都是可以直接获取到的,不过前提是在jsp页面的script脚本中,而在引用的js文件中是不可以使用的,因为${}是jsp的el标签. 利用 ${u ...
- java自动化-junit框架简述
本人使用的是java的junit框架来组织的自动化测试,故我这边需要简单介绍一下junit框架 首先,建议自行百度一下junit框架,先有一个大概的了解 所谓的接口自动化测试,会对多个接口中每一个接口 ...
- Faster数据库研习,一
什么是Faster Faster 是一个很屌的嵌入式KeyValue 数据库项目 我简单的把 微软官网怎么吹的给大家翻译一下: Faster:一个为状态管理而生的嵌入式并发KeyValue ...
- KMP替代算法——字符串Hash
很久以前写的... 今天来谈谈一种用来替代KMP算法的奇葩算法--字符串Hash 例题:给你两个字符串p和s,求出p在s中出现的次数.(字符串长度小于等于1000000) 字符串的Hash 根据字面意 ...
- selenium3 TestNG 介绍与配置
一.TestNG介绍 我之前有学习过Junit,Nunit 这些工具,现在想看看TestNG,那么TestNG是什么呢?他们之间有什么区别呢? TestNG(Next Generation)是一个测试 ...