补交20145226蓝墨云班课 -- MyCP
蓝墨云班课 -- MyCP.java
具体描述:
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
- java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
- java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
内容:
- 将文本文件转化为二进制文件,其中文本文件中的内容为十进制数字,步骤为:首先FileReader的read()方法获取对应的十进制数字,然后调用Integer.toBinaryString(十进制字符)来将十进制转为二进制,最后使用FileWriter的write()方法来保存得到的二进制。
public static void dumptx(FileReader reader, FileWriter writer) {
try (FileReader input = reader; FileWriter output = writer) {
char[] data = new char[1];
while((input.read(data)) != -1) {
int da=(int)data[0];
String str1="";
String str=Integer.toBinaryString(da);
for(int i=0;i<8;i++){
if(i<(8-str.length()))str1+='0';
}
str1+=str;
output.write(str1, 0, 8);
output.write(" ");
}
}catch (IOException e) {
e.printStackTrace();
}
}
- 将二进制文件转化为文本文件,其中文本文件中的内容为十进制数字,步骤为:首先FileReader的read()方法获取对应的8位二进制数字,然后调用Integer.valueOf(8位二进制字符串,2)方法将二进制转为十进制,最后使用FileWriter的write()方法来保存得到的十进制内容。
public static void dumpxt(FileReader reader, FileWriter writer) {
try (FileReader input = reader; FileWriter output = writer) {
char[] data = new char[8];
char []ch = new char[1];
while((input.read(data)) != -1) {
String str="";
input.read();
for(int i=0;i<8;i++){
str+=data[i];
}
int ten=Integer.valueOf(str,2);
ch[0]=(char)ten;
output.write(ch, 0, 1);
output.write(" ");
}
}catch (IOException e) {
e.printStackTrace();
}
}
- 使用主函数根据输入的参数来调用不同的方法,若是输入“java MyCP -tx XXX1.txt XXX2.bin”调用dumptx方法把文本文件(内容为十进制数字)转化为二进制文件;若是输入“java MyCP -xt XXX1.bin XXX2.txt”调用dumpxt方法把二进制文件把转化为文本文件(内容为十进制数字)。
public static void main(String[] args) throws IOException {
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
String[]Nstr=str.split(" ");
if(Nstr[2].equals("-tx")){
FileReader reader = new FileReader(Nstr[3]);
FileWriter writer = new FileWriter(Nstr[4]);
dumptx(reader, writer);
}
if(Nstr[2].equals("-xt")){
FileReader reader = new FileReader(Nstr[3]);
FileWriter writer = new FileWriter(Nstr[4]);
dumpxt(reader, writer);
}
}
运行结果如下所示:
原本的测试文本文件(内容为十进制数字):

运行文本文件转为二进制文件的代码行,结果为:


运行二进制文件转为文本文件的代码行,结果为:


补交20145226蓝墨云班课 -- MyCP的更多相关文章
- 补交20145226蓝墨云班课 -- MyOD
蓝墨云班课 -- MyOD.java 具体描述: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能. 提交测试代码和运行结果截图,加上学号水印,提 ...
- 补交20145226蓝墨云班课 -- Arrays和String单元测试
蓝墨云班课 -- Arrays和String单元测试 具体描述: 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt ...
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- 疫情下的在线上课方案:QQ直播+蓝墨云班课
目录 疫情下的在线上课方案:QQ群视频(腾讯课堂)+蓝墨云班课 使用QQ进行直播 材料 QQ直播步骤 其他问题 使用蓝墨云班课加强学习效果 教材问题 我的直播-小学生硬笔书法基础 我的直播 - C程序 ...
- MyCP.java蓝墨云班课
题目要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容 ...
- 20162330 第十二周 蓝墨云班课 hash
题目要求 利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75) 关键字集合:85,75,57,60,65,(你的8位学号 ...
- 20172310 蓝墨云ASL测试 2018-1938872
20172310 蓝墨云ASL测试 2018-1938872 题目: 已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少? 解答:( ...
- 20165223 week3蓝墨云测试总结
1. 表达式0xaa | 0x55的值为 答案: 解析: 0xaa用二进制表示为10101010,0x55用二进制表示为01010101,按位或后为11111111,十进制表示为255,十六进制表示为 ...
随机推荐
- 1.创建maven 项目 动态web工程完整示例
注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装maven 一.创建项目 1.新建maven项目,如果不在上 ...
- 转:C# 线程同步技术 Monitor 和Lock
原文地址:http://www.cnblogs.com/lxblog/archive/2013/03/07/2947182.html 今天我们总结一下 C#线程同步 中的 Monitor 类 和 Lo ...
- sonar常见
sonar在linux上安装好之后,若之后又更改了sonar的配置,则需要重启服务,重启方法如下: 1.进入到sonar的安装目录下,打开bin目录,会看到所有操作系统的文件夹 2.若操作系统为lin ...
- UE4中的AI行为树简单介绍
UE4引擎中可以实现简单AI的方式有很多,行为树是其中比较常用也很实用的AI控制方式,在官网的学习文档中也有最简单的目标跟踪AI操作教程,笔者在这里只作简单介绍. AIController->和 ...
- 【转载】Spring最佳后台框架
https://www.quora.com/What-is-the-best-backend-arquitecture-using-spring-framework The most modern a ...
- windows10 激活方法
1.“以管理员身份”运行 依次输出以下命令: slmgr.vbs /upk 2. 接着输入以下命令: slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX 3. 继续输入以 ...
- virtualbox+vagrant学习-2(command cli)-9-vagrant Plugin命令
Plugin 格式: vagrant plugin <command> [<args>] 这是用来管理插件的命令. 1)Plugin Expunge 格式: vagrant p ...
- criterions的选择
criterions分为几类,其中有classification criterions与regression criterions.classification criterions是针对离散的,re ...
- 简单说说Vue
Vue.js是这次我们公司迭代项目使用的前端框架之一.我们前端使用的是一个叫Metronic的.Metronic的可以说是bootstrap系列的集合. 当然也用到一个叫layui的,layui的话就 ...
- pl/sql连接远程oracle
1.找到oracle安装程序下的网络配置助手 2.选中本地net服务,进行添加 3.输入远程oracle服务名 4.选中tcp协议 5.输入远程oracle的ip地址 6.在网络服务名处,随便输入一个 ...