一個十六進制轉儲(dump)工具
在處理二進制文件時,我們經常希望以十六進制的格式看看其內容。現在,我們就將它作為第二個例子。下面的小工具使用了tring.format ()方法,以可讀的十六進制格式將字節數組打印出來:
import java.io.*;
pub[is class Hex {
public static string format(byte[] data){
StringBuilder result = new StringBuilder();
int n = 0;
for(byte b : data){
if(n % 16 == 0)
result.append(String.format("%05X: ",n));
result.append(String.format("%02X ",b));
n++;
if(n % 16 == 0) result.append("\n");
}
result.append("\n"));
result.append.toString();
}
public static void main(String[] args) throws Exception{
if(args.length == 0)
System.out.prinln(format(BinaryFile.read("Hex.class")));
else
System.out.prinln(format(BinaryFile.read(new File(args[0]))));
}
}
這里的read()方法將整個文件以bytes數組的形式返回。