具体描述:

编写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[];
while((input.read(data)) != -) {
int da=(int)data[];
String str1="";
String str=Integer.toBinaryString(da);
for(int i=;i<;i++){
if(i<(-str.length()))str1+='';
}
str1+=str;
output.write(str1, , );
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[];
char []ch = new char[]; while((input.read(data)) != -) {
String str="";
input.read();
for(int i=;i<;i++){
str+=data[i];
}
int ten=Integer.valueOf(str,);
ch[]=(char)ten;
output.write(ch, , );
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[].equals("-tx")){
FileReader reader = new FileReader(Nstr[]);
FileWriter writer = new FileWriter(Nstr[]);
dumptx(reader, writer);
} if(Nstr[].equals("-xt")){
FileReader reader = new FileReader(Nstr[]);
FileWriter writer = new FileWriter(Nstr[]);
dumpxt(reader, writer);
}
}

运行结果如下所示:

码云链接:https://gitee.com/wffloveaxy

20175236 JAVA MyCP(课下作业)的更多相关文章

  1. MyCP(课下作业,必做)

    作业要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为 ...

  2. MyCP课下作业

    任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为 ...

  3. 20175316 盛茂淞 MyCP(课下作业,必做)

    题目要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为 ...

  4. 20175221 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...

  5. 20175333曹雅坤MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...

  6. MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2 的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...

  7. 20175212课下作业 MyCP

    20175212课下作业 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2 ...

  8. 必做课下作业MyCP

    20175227张雪莹 2018-2019-2 <Java程序设计> 必做课下作业MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支 ...

  9. 20175314薛勐 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...

  10. MyCP(课下作业,必做)- 20175218

    MyCP(课下作业,必做) 1.任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2 ...

随机推荐

  1. 数据下载报getColNameByTableName这个指向异常

    java.lang.NullPointerException at cn.com.burgeon.tasks.webpos.DateGeneration2.getColNameByTableName( ...

  2. python爬虫套件在mac上的安装-bs的安装

    1,首先安装pip gem install pip 这种方式会报错: ERROR:  While executing gem ... (Gem::FilePermissionError) You do ...

  3. 自定义注解(spring)

    终于有时间可以在这里写一篇博文了,今天写一下我在项目中用到的自定义注解,就是在每次操作项目的时候,想把它的操作加在我的数据库中,简单地说就是日志管理,这些东西都写完之后,我就问我自己,问什么要自定义注 ...

  4. struts2+mybatis3+log4j2+bulma+mysql8元工程

    https://pan.baidu.com/s/1Z1YklkKEKrzhS7uM9w6ewQ https://pan.baidu.com/s/1Z1YklkKEKrzhS7uM9w6ewQ

  5. 在Eclipse中使用版本管理工具SVN

    近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具.由于平时主要是写Java代码,所以能够在Eclipse中使用SVN工具进行版本管理就可以说是很 ...

  6. 在Vuex使用 以及 dispatch和commit来调用mutations的区别

    main.js中 import Vuex from 'vuex' Vue.use(vuex); const store = new Vuex.store({ state: { nickName: &q ...

  7. 高通平台获取secure boot,串号等状态

    adb shell下 运行./system/bin/r address 其中address对应各个flag参数的地址,具体如下: 无法打开/dev/mem节点(没有该节点),这时只需在内核配置中选上C ...

  8. 引擎设计跟踪 ShadowMap 细节和分析

    之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...

  9. 引擎设计跟踪(九.14.2 final) Inverse Kinematics: CCD 在Blade中的实现

    因为工作忙, 好久没有记笔记了, 但是有时候发现还得翻以前的笔记去看, 所以还是尽量记下来备忘. 关于IK, 读了一些paper, 觉得之前翻译的那篇, welman的paper (http://gr ...

  10. Oracle创建用户角色

    正在维护一个CS结构的应用,每次创建应用的用户时都需要创建对应的数据库schema,并且需要赋予其相应的对象权限和角色.操作很不方便,所以专门创建了一个角色,过程如下: 1.创建角色 SQL> ...