补交20145226蓝墨云班课 -- MyOD
蓝墨云班课 -- MyOD.java
具体描述:
编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能。
提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
内容:
Linux下的od命令是用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。其中od -tx -tc XXX是输出文件的十六进制数和ASCII字符或反斜杠序列(如\n)。
- 读取文本中的内容(十进制),按位读取,输出十六进制时,只需将每四位组合,再将组合后的四四组合,就可得到十六进制内容,具体代码如下:
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]);
}
- 读取文本内容完成后,将转化位对应的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文件的内容如下:

运行结果如下:

补交20145226蓝墨云班课 -- MyOD的更多相关文章
- 补交20145226蓝墨云班课 -- MyCP
蓝墨云班课 -- MyCP.java 具体描述: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt ...
- 补交20145226蓝墨云班课 -- Arrays和String单元测试
蓝墨云班课 -- Arrays和String单元测试 具体描述: 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常,错误和边界情况 String类 charAt ...
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
蓝墨云班课 编写MyCP.java 要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- 疫情下的在线上课方案:QQ直播+蓝墨云班课
目录 疫情下的在线上课方案:QQ群视频(腾讯课堂)+蓝墨云班课 使用QQ进行直播 材料 QQ直播步骤 其他问题 使用蓝墨云班课加强学习效果 教材问题 我的直播-小学生硬笔书法基础 我的直播 - C程序 ...
- MyCP.java蓝墨云班课
题目要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容 ...
- 20162330 第十二周 蓝墨云班课 hash
题目要求 利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75) 关键字集合:85,75,57,60,65,(你的8位学号 ...
- 20172310 蓝墨云ASL测试 2018-1938872
20172310 蓝墨云ASL测试 2018-1938872 题目: 已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少? 解答:( ...
- 20165223 week3蓝墨云测试总结
1. 表达式0xaa | 0x55的值为 答案: 解析: 0xaa用二进制表示为10101010,0x55用二进制表示为01010101,按位或后为11111111,十进制表示为255,十六进制表示为 ...
随机推荐
- 6.JXL操作Excel
一.简介 jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelA ...
- asp.net --- reponse对象写图片
FileStream fs = new FileStream(Server.MapPath("images/DSC_0290.JPG"), FileMode.Open);//将图片 ...
- Mysql压缩解决方案
提到mysql压缩相关的内容,我们能想到的可能是如下几种和压缩相关的场景: 1.客户端和服务器之间传输的数据量太大,需要进行压缩,节约带宽 2.mysql某个列的数据量大,只针对某个列的数据压缩 3. ...
- 0. 跟踪标记 (Trace Flag) 简介
一. 什么是跟踪标记 SQL Server 跟踪标记(Trace Flag),像是一个开关,可用来自定义SQL Server的某种行为或特性,在性能诊断,系统调试等方面较为常用.比如:开启1204或1 ...
- Codewars, Leetcode, Hackerrank. Online Judges Reviews
http://jasonjl.me/blog/2015/03/30/practical-programming-practice-services/ Codewars, Leetcode, Hacke ...
- Redis学习---Redis操作之有序集合
有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...
- Linux su命令详解
su switch user,用于切换用户用 su常见命令参数 用法:su [选项]... [-] [用户 [参数]... ] Change the effective user id and gro ...
- C++ Boost在Windows和Linux下的编译安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 差了一下,原来这个包的名字叫 ...
- 三星平板SM-T320刷机
三星 Galaxy Tab Pro 8.4 (SM-T320) / 国行 固件下载 刷机教程 下载手机驱动,刷机工具Odin,相应的固件包,手机和电脑用数据线连接安装好手机的驱动. 手机先完全的关机, ...
- 利用Gson将JSON数据进行格式化(pretty print)
我们可以利用Gson包将String类型的JSON数据进行格式化. Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonPa ...