20155331第十五周课堂练习

第十五周课堂练习

MyOD

编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能提交测试代码和运行结果截图。

代码:

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

public class IO {

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");

    }

    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=IO.readFile("C:\\Users\\zx50jx\\Desktop\\20155331.txt");

    String hexData=IO.format(bt) ;

    System.out.println(hexData);

}

}

教材代码检查-p242

在IDEA中或命令行中运行P242 StackTraceDemo2.java
代码运行结果和教材一致吗?为什么?

代码:

public class StackTraceDemo2 {
public static void main(String[] args){
    try{
        c();
    }catch(NullPointerException ex){
        ex.printStackTrace();
    }
}
static void c(){
    try{
        b();
    }catch(NullPointerException ex){
        ex.printStackTrace();
        throw ex;
    }
}
static void b(){
    a();
}
static String a(){
    String text=null;
    return text.toUpperCase();
}
}

不完全一致,

MyCP

编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数:

  • java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为十进制数字)转化为二进制文件

  • java MyCP -xt XXX1.bin XXX2.txt 用来二进制文件把转化为文本文件(内容为十进制数字)

代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.*;

/**

  * Created by 10337 on 2017/5/31.

 */
import java.io.*;

 public class MyCP
 {  
public static void main(String[] args) throws IOException {
    FileInputStream in = new FileInputStream(args[1]);
    FileOutputStream out = new FileOutputStream(args[2]);
    String str = new String(args[0]);

    byte[] data = new byte[1024];
    int length;
    if(str.equals("-tx")){
        while((length = in.read(data)) != -1){

            int number = data.hashCode();
            String binaryNum = Integer.toBinaryString(number);
            data = binaryNum.getBytes();

            out.write(data); // 5 toBinary :101

        }
    }
    else if(str.equals("-xt")){
        while((length = in.read(data)) != -1){
            int number = data.hashCode();
            String binaryNum = Integer.toString(number);
            data = binaryNum.getBytes();

            out.write(data); // 5 toBinary :101

        }
    }

}
}

posted @ 2017-06-02 00:00  20155331  阅读(125)  评论(1编辑  收藏  举报