MyCP(课下作业,必做)

选做题目以及分析

题目:编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:

  • java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件
  • java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

分析

  • 题目是想要实现文件的复制过程,且能够支持两个参数:-tx-xt
  • 本题的要求是把内容为十进制数字的文本文件转化为二进制文件,所以我们只需要考虑由数字字符构成的文件就可以了。
  • 十进制数字单个数字最大是9,用二进制数字表示需要4位。于是我的想法是,把文本文件中的每一位数字都转化为4位二进制数。

了解CP功能

  • 学习一下Linux系统下的CP功能
    功能: 复制文件或目录
    说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
    参数:
    -a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
    -b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
    -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
    -i 或 --interactive 覆盖文件之前先询问用户
    -l 或 --link 对源文件建立硬链接,而非复制文件
    -p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
    -P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
    -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
    -R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
    -s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
    -S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
    -u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
    -v 或 --verbose 显示执行过程

程序设计

根据分析写出伪代码:

    读取命令行输入的3个参数(一个指明功能,两个文件名)当args[0]是“-tx”,每次读取文件名为args[1]文本文件中的1个字符,把它转为4位二进制数字printf("%04b"),写入到文件名为args[2]的二进制文件中去,直到文本文件中的所有字符读取完毕。 当args[0]是“-xt”,每次读取文件名为args[1]二进制文件中的4个字符,把它转为1位十进制数字printf("%d"),写入到文件名为args[2]的十进制文件中去,直到二进制文件中的所有字符读取完毕。

编程实现

  • 关键代码注释(见图片)

  • 在a.text中输入我的学号20165330,命令行参数设定为-tx a.text b.bin,运行代码,查看b.bin

  • 命令行参数设定为-xt b.bin a.text,运行代码,查看a.text

  • 综上,成功实现

编程中遇到的问题和解决

  • 问题一:使用Integer的toBinaryString()方法时,由于括号内的参数是String 类型的,所以直接再括号内输入数字,得到的是ASCII码的二进制表示
  • 问题一解决:查看ASCII码表,在括号内输入数字后减去0的ASCII码48就解决问题了。

参考资料

    • Linux的CP命令

转载于:https://www.cnblogs.com/waaaaa/p/10786835.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系!

来源: ittbank首先&#xff0c;“嵌入式”这是个概念&#xff0c;准确的定义没有&#xff0c;各个书上都有各自的定义。但是主要思想是一样的&#xff0c;就是相比较PC机这种通用系统来说&#xff0c;嵌入式系统是个专用系统&#xff0c;结构精简&#xff0c;在硬件和软件上都只…

【计算机网络复习 物理层】2.3 物理层设备

物理层设备一、中继器二、集线器&#xff08;多口中继器&#xff09;一、中继器 诞生原因&#xff1a; 由于存在损耗&#xff0c;在线路上传输的信号功率会逐渐衰减&#xff0c;衰减到一定程度时将造成信号失真&#xff0c;因此会导致接收错误。 中继器的功能&#xff1a;对信…

Tomcat关闭失败,SEVERE: Could not contact localhost:8005. Tomcat may not be running.

SEVERE: Could not contact localhost:8005. Tomcat may not be running. Tomcat 启动后&#xff0c;关闭失败&#xff0c;显示以下 进入 java 的安装目目录下的 jdk/jre/lib/security 目录 修改 “java.security” 文件 vi java.security通过vim 命令 “ /securerandom.sourc…

Gartner发布2022年重要战略技术趋势

来源&#xff1a;Gartner公司Gartner于今日发布企业机构在2022年需要探索的重要战略技术趋势。分析师们在本周四举行的Gartner IT Symposium/Xpo峰会美洲站期间公布了他们的研究结果。Gartner研究副总裁David Groombridge表示&#xff1a;“首席执行官和董事会正在设法通过与客…

爬虫 --通用篇

概述 爬虫是合法的吗? 是的,它是一个计算机的学科!一个工具 什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上爬取/获取数据的过程.爬虫爬取的也就是服务端的响应数据 爬虫使用场景的分类 - 通用爬虫 : 爬取一整张页面数据."抓取系统" - 聚焦爬虫 : 爬…

【计算机网络复习 数据链路层】3.2 封装成帧和透明传输

封装成帧和透明传输一、封装成帧二、透明传输一、封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部&#xff0c;这样就构成了一个帧。接收端在收到物理层上交的比特流后&#xff0c;就能根据首部和尾部的标记&#xff0c;从收到的比特流中识别帧的开始和结束。 首部…

新一代人工智能:从“感知智能”向“认知智能”转化

来源&#xff1a;光明网 《光明日报》&#xff08; 2021年05月25日 09版&#xff09;新一代人工智能正在逐步从感知智能向认知智能转化——这是全国政协副主席、中国科协主席万钢在第五届世界智能大会上作出的判断。“感知智能是机器具备了视觉、听觉、触觉等感知能力&#xf…

迷宫城堡 强连通

Problem Description为了训练小希的方向感&#xff0c;Gardon建立了一座大城堡&#xff0c;里面有N个房间(N<10000)和M条通道(M<100000)&#xff0c;每个通道都是单向的&#xff0c;就是说若称某通道连通了A房间和B房间&#xff0c;只说明可以通过这个通道由A房间到达B房…

【计算机网络复习 数据链路层】3.3.1 差错控制(检错编码)

差错控制&#xff08;检错编码&#xff09;一、差错从何而来&#xff1f;二、数据链路层的差错控制2.1 奇偶校验码2.2 CRC循环冗余码一、差错从何而来&#xff1f; 概括来说&#xff0c;传输中的差错都是由于噪声引起的。 全局性&#xff1a;由于线路本身电气特性所产生的随机…

从“元宇宙”热炒中理性看待我国虚拟现实产业发展

来源&#xff1a;工信头条作者&#xff1a;袁钰&#xff08;赛迪顾问、电子信息产业研究中心、分析师&#xff09;2021年4月以来&#xff0c;元宇宙概念大热&#xff0c;国内外巨头企业围绕“元宇宙”加快布局&#xff0c;作为元宇宙核心技术之一的虚拟现实也被寄予厚望。经数据…

2018-2019-2 网络对抗技术 20165332 Exp6 信息搜集与漏洞扫描

2018-2019-2 网络对抗技术 20165332 Exp6 信息搜集与漏洞扫描 基础问题回答 基础问题回答 &#xff08;1&#xff09;哪些组织负责DNS&#xff0c;IP的管理。 答&#xff1a;目前全球有5个地区性注册机构&#xff1a; ARIN主要负责北美地区业务 RIPE主要负责欧洲地区业务 APNIC…

【计算机网络复习 数据链路层】3.3.2 差错控制(纠错编码)

差错控制&#xff08;纠错编码&#xff09;一、海明码1.1 确定校验码位数r1.2 确定校验码和数据的位置1.3 求出校验码的值1.4 检错并纠错一、海明码 **海明码&#xff1a;**发现双比特错&#xff0c;纠正单比特错。 1.1 确定校验码位数r 海明不等式&#xff1a; r 为冗余信…

Nature封面重磅!剑桥大学团队揭开老年痴呆背后的罪魁祸首

来源&#xff1a;naturetau蛋白异常是老年痴呆症的重要病因。英国剑桥大学Sjors H. W. Scheres、Michel Goedert等研究人员在Nature上发文&#xff0c;基于不同的蛋白折叠结构对「tau蛋白病」进行分类&#xff0c;荣登Nature封面。听说过阿尔茨海默病吗&#xff1f;没有。老年痴…

速度比晶体管快1000倍,新型单光子开关登上Nature

来源&#xff1a;机器之心作者&#xff1a;CHARLES Q. CHOI一种新型光学开关每秒钟的运行次数达到 1 万亿次&#xff0c;要比现在商用的顶级硅芯片快100到1000倍&#xff0c;这项研究未来或许可以催生出基于光而不是电的新一代计算机。在如今人们应用最为广泛的计算机架构中&am…

【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制

流量控制与可靠传输机制一、数据链路层的流量控制二、流量控制的方法三、可靠传输、滑动窗口、流量控制一、数据链路层的流量控制 较高的发送速度和较低的接收能力不匹配&#xff0c;会造成传输出错&#xff0c;因此流量控制也是数据链路层的一项重要工作。 数据链路层的流量…

linux的驱动开发——简单驱动程序编写

1.字符设备驱动介绍 \qquad字符设备驱动是linux驱动中&#xff0c;最基本的一类设备驱动&#xff0c;字符设备就是按照一个字节一个字节的方式进行读写操作的设备。读写数据分先后顺序&#xff0c;我们常见的单片机外设&#xff0c;比如led灯、按键、I2C、SPI、LCD等等都属于字…

【计算机网络复习 数据链路层】3.4.2 停止-等待协议

停止-等待协议一、停等协议1.1 无差错情况1.2 有差错控制1.4 停等协议性能分析一、停等协议 1、为什么要有停止-等待协议&#xff1f; 除了比特出差错&#xff0c;底层信道还会出现丢包问题。 丢包&#xff1a; 物理线路故障、设备故障、病毒攻击、路由信息错误等原因&#…

6G目前进展与未来展望

来源&#xff1a;6G俱乐部摘要&#xff1a;随着5G的大规模商用&#xff0c;6G研究也成为了移动通信行业新的研究热点。全球通信发达的国家和地区纷纷出台6G研发规划。面向2030年&#xff0c;如何定义6G&#xff0c;如何支撑6G突破现有技术的束缚&#xff0c;构建全新的能力体系…

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要&#xff1a;本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件&#xff0c;然后单击顶部“文件”菜单中的“新建”功能&#xff0c;我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…

【计算机网络复习 数据链路层】3.4.3 后退N帧协议(GBN)

后退N帧协议&#xff08;GBN&#xff09;一、后退N帧协议中的滑动窗口二、GBN发送方必须响应的三件事三、GBN接收方要做的事四、滑动窗口长度一、后退N帧协议中的滑动窗口 发送窗口&#xff1a;发送方维持一组连续的允许发送的帧的序号。 接收窗口&#xff1a;接收方维持一组连…