20155323课堂实践20170531

20155323课堂实践20170531

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

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

实验代码:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class MyOD {
    public static String format(byte[] by) {
        int line=0;
        StringBuilder buf=new StringBuilder();
        for(byte b:by){
            if(line%16 == 0){
                buf.append(String.format("%05x: ",line));
            }
            buf.append(String.format("%02x  ",b));
            line++;
            if(line%16 == 0){
                buf.append("\n");
            }
        }
        buf.append("\n");
        return buf.toString();
    }

    public static byte[] readFile(String file)throws IOException{
        InputStream in=new FileInputStream(file);
        int length=in.available();
        byte by[]=new byte[length];
        in.read(by);
        return by;
    }
    public static void main(String[] args) throws IOException{
        byte[] by=MyOD.readFile("C:\\Users\\weiliang\\abc.txt");
        String hexData=MyOD.format(by);
        System.out.println(hexData);
    }
}

运行截图:

遇到的问题

  • 不清楚Linux下od -tx -tc XXX命令。百度后我知道了od命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。od命令系统默认的显示方式是八进制,名称源于Octal Dump。例如od -tx testfile是以十六进制输出,默认以四字节为一组(一列)显示。od -tx1 testfile是以十六进制输出,每列输出一字节。od -tc test 是用字符来显示文件test。
  • 首先要先定义一个主类,然后定义一个字符流,使其以十六进制输出,每逢两位数字输出一次,不足前面补0,每输出16次换行。然后构造一个readFile()方法,并且定义该方法是从文件中读取字符。最后定义读取路径,设置好读取的文件,最后用主类输出。
    码云链接
posted @ 2017-06-01 23:01  刘威良  阅读(185)  评论(3编辑  收藏  举报