20175314薛勐 MyOD(课下作业,选做)

MyOD(课下作业,选做)

要求

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

思路

代码

MyOD

import static java.lang.System.out;
import java.io.*;
import java.sql.*;
import java.util.Scanner;
public class MyOD {
    public static void main(String[] args){
        String FileName=args[0];
        int n=-1,len=0,FileLen=0;
        byte [] a=new byte[100];
        try  {
            RandomAccessFile f2 = new RandomAccessFile(FileName, "r");
            FileLen=(int)f2.length();//获得文件中字符的个数
        }
        catch (FileNotFoundException e) {}
        catch (IOException e){}
        try{
            File f=new File(FileName);
            InputStream in = new FileInputStream(f);
            while((n=in.read(a,0,16))!=-1) {//不断读取文件中的字符,每次读取16个,n是实际读取的个数
                String s=new String (a,0,n);
                out.printf("%07o",len);//输出每一行的开头
                char [] ch=s.toCharArray();//将读取到的字符串转化为字符数组
                for(int i=0;i<s.length();i++){
                    System.out.print("  ");
                    System.out.print(Integer.toHexString((int)ch[i]));
                }//第一行先按格式输出的ASCII码
                len=len+n;
                if(len==FileLen){
                    System.out.print("   ");
                    System.out.print("0a");
                }
                System.out.println();
                System.out.print("       ");
                for(int i=0;i<s.length();i++){
                    System.out.print("   ");
                    System.out.print(ch[i]);
                }//第二行按格式输出每个字符
                if(len==FileLen){
                    System.out.print("   ");
                    System.out.print("\\n");
                }//全部输出完毕后要输出最后的“\n”
                System.out.println();
            }
            out.printf("%07o",len);//最后一行是总字符个数的8进制表示
            in.close();
        }
        catch(IOException e) {
            System.out.println("File read Error"+e);
        }
    }
}

测试结果

XXX.txt

  • My name is Barry Allen,and I am the fastest man alive.

MyOD.java

20175314薛勐 MyOD(课下作业,选做)

20175314薛勐 MyOD(课下作业,选做)

遇到的问题

码云链接

参考资料

上一篇:MyOD-Linux od命令的实现


下一篇:php判断是否为移动端