###20175311MyCP(课下作业,必做)
MyCP(课下作业,必做)
作业题目
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:
java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)
cp命令的作用
cp命令用来复制文件或文件夹。它主要有两种形式
//用法一:复制一个文件
$ cp [option] src-file target-file
//用法二:复制多个文件,目标是一个文件夹
$ cp [option] src-file1 src-file2 ... target-directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件
MyCP实现内容
编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:-tx和-xt;
java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字),十进制数字单个数字最大是9,用二进制数字表示需要4位,所以需要把文本文件中的十进制数字的每一位都补齐为四位二进制数
把内容为十进制数字的文本文件转化为二进制文件,所以只需要考虑由数字字符构成的文本文档。提交测试代码和运行结果截图,加上学号水印,提交码云代码链接
作业代码
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 ReadLenth=0;
if (choose.equals("-tx")){
ReadLenth=1;
}//如果参数是-tx,每次读取的长度设置为1
else if(choose.equals("-xt")) {
ReadLenth=4;
}//如果参数是-xt,每次读取的长度设置为4
else{
System.out.println("输入参数错误!");
System.exit(0);
}//如果参数输入错误的话就退出程序
char c[] =new char[ReadLenth];//定义字符数组
try{
Writer out = new FileWriter(targetFile);//指向目的地的输出流
Reader in = new FileReader(sourceFile);//指向源的输入流
int n = -1;
while((n=in.read(c,0,ReadLenth))!=-1) {
//当文件中还有信息时,继续读取字符到字符数组c中,n是返回的实际读取的字符的个数
String number="";
if(ReadLenth==1){
number=Integer.toBinaryString((int)c[0]-48);
//把读取到的十进制数转化为二进制数
while(number.length()<4){
number="0"+number;//把二进制数扩充为4位
}
out.write(number);//写入目标文件
}
else if(ReadLenth==4){
for(int i=0;i<n;i++){
number=number+c[i];//读取4位的二进制数
}
number=Integer.valueOf(number,2).toString();//二进制数转化十进制,再转为字符串形式
out.write(number);//写入目标文件
}
}
out.flush();
out.close();
}
catch(IOException e) {
System.out.println("Error "+e);
}
}
}
测试结果
###20175311MyCP(课下作业,必做)的更多相关文章
- 20175221 MyCP(课下作业,必做)
MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...
- 20175333曹雅坤MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...
- MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2 的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...
- 必做课下作业MyCP
20175227张雪莹 2018-2019-2 <Java程序设计> 必做课下作业MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支 ...
- 20175314薛勐 MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...
- MyCP(课下作业,必做)- 20175218
MyCP(课下作业,必做) 1.任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2 ...
- 20175325 MyCP (课下作业,必做)
20175325 MyCP (课下作业,必做) 一.目录: 题目 设计思路 运行结果 码云链接 二.题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两 ...
- 数据库MySQL(课下作业,必做)
数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...
- 20175221 曾祥杰 数据库MySQL(课下作业,必做)
数据库MySQL(课下作业,必做) 题目要求: 1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB ...
随机推荐
- Java多线程之---用 CountDownLatch 说明 AQS 的实现原理
本文基于 jdk 1.8 . CountDownLatch 的使用 前面的文章中说到了 volatile 以及用 volatile 来实现自旋锁,例如 java.util.concurrent.ato ...
- 安装VS时,双击setup.exe后界面一闪而过的问题
问题:安装VS时,双击setup.exe界面一闪而过的问题 解决: 百度后说需要到"控制面板/添加和管理程序"关闭系统自带的netframework3.x及以上版本. 1.查看所有 ...
- [Go] golang类型断言
类型断言有点像向下转型,接口类型转到具体的实现实例类型上类型断言是一个使用在接口值上的操作.语法上它看起来像x.(T)被称为断言类型,这里x表示一个接口的类型和T表示一个类型 package main ...
- vue中使用Element主题自定义肤色
一.搭建好项目的环境. 二.根据ElementUI官网的自定义主题(http://element.eleme.io/#/zh-CN/component/custom-theme)来安装[主题生成工具] ...
- Axure rp8团队原型图开发
说道原型图大家都不陌生,Axure rp作为这类工具可以说在网页布局的设计给开发人员提供了很大便利,目前我只熟悉过这一种,不知道小伙伴们有没有其他好用的工具推荐给大家用一下吗.好了,废话不多说,今天给 ...
- 网络最大流算法—最高标号预流推进HLPP
吐槽 这个算法.. 怎么说........ 学来也就是装装13吧.... 长得比EK丑 跑的比EK慢 写着比EK难 思想 大家先来猜一下这个算法的思想吧:joy: 看看人家的名字——最高标号预留推进 ...
- AI时代大点兵-国内外知名AI公司2018年最新盘点
AI时代大点兵-国内外知名AI公司2018年最新盘点 导言 据腾讯研究院统计,截至2017年6月,全球人工智能初创企业共计2617家.美国占据1078家居首,中国以592家企业排名第二,其后分别是英国 ...
- 从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证
SpringBoot系列目录 SpringBoot整合mongodb MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.如果你没用过Mong ...
- Ubuntu 16.04安装Zabbix 3.2 版本
系统环境:ubuntu16.04 注意:为了便于实验测试,需要关闭防火墙: parallels@zabbix-server:~$ sudo systemctl stop ufw parallels ...
- Parcelable encountered IOException writing serializable object
异常: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object 这是在in ...