###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基础】【21IO(字符流)&字符流其他内容&递归】
21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写 ...
- leetcode — remove-duplicates-from-sorted-array-ii
/** * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ * * * Follow ...
- 基于 Nginx 的 HTTPS 性能优化实践
前言 分享一个卓见云的较多客户遇到HTTPS优化案例. 随着相关浏览器对HTTP协议的“不安全”.红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信.支付宝小程序强制 HTTPS ...
- Scala(二) —— 函数
try 表达式 var result = try{ Integer.parseInt("dog") }catch{ case _ => 0 }finally{ println ...
- [转]react 部署在ngnix上(windows环境)
本文转自:https://blog.csdn.net/wly_er/article/details/82348593 目录 1.下载nginx. 2.测试nginx 3.配置react项目 4.ngi ...
- python实现ssh远程登录
python实现ssh远程登录 # 测试过程中,比较常用的操作就是将DUT(待测物)接入网络中,然后远程操控对DUT, # 使用SSH远程登陆到主机,然后执行相应的command即可 # python ...
- PHP中||与or的区别
一直认为PHP中“or”和“||”是可以划等号的,其实不然,它们存在一个优先级的差别.下面通过一个例子说明它们的差异: <?php $a = false || true; //'||'的优先级大 ...
- Linux平台安装MongoDB及使用Docker安装MongoDB
一.Linux平台安装MongoDB MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/downlo ...
- linux系统管理--top命令
这些日子,运维公司三台服务器,一个小伙伴貌似对top命令不太感冒,我告诉他去百度(不懂谷歌百度的程序员不是好厨师),然后突然发现也许我自己该整理一下相关的东西了 top命令是Linux下常用的性能分析 ...
- ios端的Safari浏览器中,输入框加入readonly之后,点击还能获取焦点的解决办法。
事情的起因是,新增一个需求,原来的输入框点击不要出现系统自带的键盘,出现我们模拟的键盘.如果是一次性开发的话, 我肯定把这个输入框写成一个div或者其他的元素,然后点击之后出现我们的模拟键盘,这样就不 ...