蓝墨云班课 -- MyOD.java

具体描述:

编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能。

提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。

内容:

Linux下的od命令是用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。其中od -tx -tc XXX是输出文件的十六进制数和ASCII字符或反斜杠序列(如\n)。

  1. 读取文本中的内容(十进制),按位读取,输出十六进制时,只需将每四位组合,再将组合后的四四组合,就可得到十六进制内容,具体代码如下:
byte[] data = new byte[1024];
int k = input.read(data);
System.out.print("0000010: ");
for (int i = 0; i < k; i = i + 4) {System.out.printf(" %02x%02x%02x%02x ", data[i + 3], data[i + 2], data[i + 1], data[i]);
}
  1. 读取文本内容完成后,将转化位对应的ASCII字符,要注意的是若是换行符出现,需要将换行符显示出来,具体代码如下:
System.out.print("\n0000020: ");
for(int i=0;i<k;i++) {if(data[i]!=0) {System.out.printf("%c ",data[i]);if ((int) data[i] == 10) {System.out.printf(" \\");System.out.printf("n  ");}}
}

整体的代码如下:

public class MyOD {public static void main(String[] args) {FileInputStream fis = null;try {fis = new FileInputStream("test2.txt");dump(fis);}catch(Exception e) {System.out.println(e);}}public static void dump(FileInputStream fis) throws IOException{try (InputStream input = fis) {byte[] data = new byte[1024];int k = input.read(data);System.out.print("0000010: ");for (int i = 0; i < k; i = i + 4) {System.out.printf(" %02x%02x%02x%02x ", data[i + 3], data[i + 2], data[i + 1], data[i]);}System.out.print("\n0000020: ");for(int i=0;i<k;i++) {if(data[i]!=0) {System.out.printf("%c ",data[i]);if ((int) data[i] == 10) {System.out.printf(" \\");System.out.printf("n  ");}}}} catch (IOException e) {e.printStackTrace();}}
}

用于实验的文本test2.txt文件的内容如下:

运行结果如下:

转载于:https://www.cnblogs.com/bestixyh/p/6941107.html

补交20145226蓝墨云班课 -- MyOD相关推荐

  1. 补交20145226蓝墨云班课 -- MyCP

    蓝墨云班课 -- MyCP.java 具体描述: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt ...

  2. 补交20145226蓝墨云班课 -- 正则表达式作业

    蓝墨云班课 -- 正则表达式作业 具体描述: 参考老师在博客园的 Intellj IDEA 简易教程中的单元测试,以TDD的放式学习云班课中"正则表达式简易教程.pdf",在此贴出 ...

  3. 补交20145226蓝墨云班课 -- 后缀表达式

    蓝墨云班课 -- 后缀表达式 具体描述: 后缀表达式 内容: ###基本概念 后缀表达式,也叫逆波兰式,不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考 ...

  4. 补交20145226蓝墨云班课 -- Arrays和String单元测试

    蓝墨云班课 -- Arrays和String单元测试 具体描述: 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt ...

  5. linux java -cp lt; .txt_补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能...

    蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...

  6. 20155317 2016-2017-2 蓝墨云班课考题第2周

    20155317 2016-2017-2 蓝墨云班课考题第2周 三: 1.用gcc -g编译vi输入的代码 2.在main函数中设置一个行断点 3.在main函数增加一个空循环,循环次数为自己学号后4 ...

  7. 基于蓝墨云平台的计算机教学,基于蓝墨云班课的中职计算机“分层教学”模式探究...

    崔月娇 一.教学现状概述 一方面,我校是面向全国招生,部分欠发达地区的学生由于资源配置导致计算机基础相当薄弱,而来自发达地区的学生早早地接触了计算机,部分计算机基础操作已相当熟练,学生的计算机水平参差 ...

  8. 蓝墨云班课计算机测试题答案,20155317 第一周蓝墨云班课考题

    20155317 2016-2017-2 蓝墨云班课考题第2周 上周蓝墨云班课考题 1 ( 单选题 | 1 分) Amdahl定律说明,我们对系统的某个部分做出重大改进,可以显著获得一个系统的加速比. ...

  9. 使用springboot+vue+element-ui模仿蓝墨云班课

    声明:前端大量CSS样式从原网站复制来的,蓝墨云班课也十分好用,大家可以了解下 项目地址:前端+后端+数据库 https://gitee.com/cao-qiangqiang/a04test07/tr ...

最新文章

  1. 程序员面试题精选100题(18)-用两个栈实现队列[数据结构]
  2. 非常好用的两个PHP函数 serialize()和unserialize()
  3. dos窗口ping命令测试实战
  4. c++ 连续图片显示_计算整数的和并显示结果
  5. cocos2d-x游戏实例(17)-纵版射击游戏(4)
  6. poj2594(二分图,最小路径覆盖变形)
  7. sublime代码片段
  8. 一文教你学会需求分析与管理
  9. JDK 11 是发布了,但收费吗?
  10. JAVA生成随机昵称
  11. SQL SERVER 2016安装Microsoft R Open和Microsoft R Server问题
  12. 帝国cms没有标题图片就显示默认图片
  13. 零零信安:攻击面管理(ASM)技术详解和实现
  14. FortiGate防火墙配置SSL用户分流
  15. Newton牛顿法(一)| 基本思想+迭代公式
  16. 我被炒了! 一位36岁程序员的的焦虑与困惑...
  17. python进阶练习之——复读机相加
  18. 如何写个优秀的Github项目Readme文档?经典模版拿去不谢~
  19. 关梅西多大的事:从尤文电话门结果,看巴萨裁判门事件走势
  20. openssh移植 for pycharm 远程调试 sftp

热门文章

  1. excel中如何将内容分成几列?speedoffice告诉你
  2. linux实训分析与体会,linux实训总结与体会
  3. Microsoft SQL Server笔记整理
  4. android 点击跳转到qq,Android应用跳转到手机QQ的方法
  5. 屏蔽iOS11 Xcode9下打印的乱七八糟的日志
  6. android 日历翻页动画,Android开源库合集:轻松实现Android动态,炫目:日历效果...
  7. 物联网云平台系统设计
  8. 谷歌:新人工智能(AI)算法预测人类死亡时间,意念可指挥机器人
  9. vim编辑器---基本使用方法03(末行模式)
  10. 按照ID降序排列方法