20155227第十五周课堂实践

20155227第十五周课堂实践

提交之后发现交的截图是之前abc.txt文件为空时的截图。

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

关于od命令
功能:输出文件内容。
用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。
语  法:od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]
说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal
Dump)。
但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。

常用参数:

   -a  此参数的效果和同时指定"-ta"参数相同。
  -A<字码基数>  选择要以何种基数计算字码。
  -b  此参数的效果和同时指定"-toC"参数相同。
  -c  此参数的效果和同时指定"-tC"参数相同。
  -d  此参数的效果和同时指定"-tu2"参数相同。
  -f  此参数的效果和同时指定"-tfF"参数相同。
  -h  此参数的效果和同时指定"-tx2"参数相同。
  -i  此参数的效果和同时指定"-td2"参数相同。
  -j<字符数目>或--skip-bytes=<字符数目>  略过设置的字符数目。
  -l  此参数的效果和同时指定"-td4"参数相同。
  -N<字符数目>或--read-bytes=<字符数目>  到设置的字符数目为止。
  -o  此参数的效果和同时指定"-to2"参数相同。
  -s<字符串字符数>或--strings=<字符串字符数>  只显示符合指定的字符数目的字符串。
  -t<输出格式>或--format=<输出格式>  设置输出格式。
  -v或--output-duplicates  输出时不省略重复的数据。
  -w<每列字符数>或--width=<每列字符数>  设置每列的最大字符数。
  -x  此参数的效果和同时指定"-h"参数相同。
  --help  在线帮助。
  --version  显示版本信息。
代码

代码如下:

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

public class MyOD {

    public static String format(byte []bt){

        int line=0 ;

        StringBuilder buf=new StringBuilder() ;

        for(byte d:bt){

            if(line%16==0)

                buf.append(String.format("%05x: ", line)) ;

            buf.append(String.format("%02x  ", d)) ;

            line++ ;

            if(line%16==0)

                buf.append("\n\n");

        }

        buf.append("\n") ;

        return buf.toString();

    }

    public static byte[] readFile(String file) throws IOException{

        InputStream is=new FileInputStream(file) ;

        int length=is.available() ;

        byte bt[]=new byte[length] ;

        is.read(bt) ;

        return bt;

    }

    public static  void main(String[]agrs) throws IOException{

        byte []bt=MyOD.readFile("C:\\Workspace\\guyanlin20155227\\src\\2015527\\exam2017531\\abc.txt");

        String hexData=MyOD.format(bt) ;

        System.out.println(hexData);

    }

}
运行结果截图

1065400-20170602161821352-930045118.png

转载于:https://www.cnblogs.com/guyanlin/p/6922798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值