Java实现十六进制转储dump工具

本文介绍了一种将Java字节数组转换为十六进制字符串的方法,并通过一个具体示例展示了如何使用该方法来解析并格式化Class文件的内容。此方法对于理解和分析Java字节码结构非常有用。
    public static void BinaryToHexFormatter(byte[] data){
        int n = 0;
        StringBuilder res = new StringBuilder();
        for (byte b : data) {
            if (n  % 16 == 0){
                res.append(String.format("%05x: ",n));
            }
            res.append(String.format("%02x ",b));
            n++;
            if (n % 16 == 0){
                res.append(String.format("\n"));
            }
        }
        res.append(String.format("\n"));
        println(res);
    }
测试
public static void main(String[] args) {
         File file = new File("F:/JAVA/0826/out/production/0826/CountNum.class");
        try {
            FileInputStream in = new FileInputStream(file);
            BinaryToHexFormatter(in.readAllBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
   }         
结果
00000: ca fe ba be 00 00 00 38 00 54 0a 00 06 00 28 09 
00010: 00 29 00 2a 0a 00 06 00 2b 0a 00 2c 00 2d 08 00 
00020: 2e 07 00 2f 0a 00 2c 00 30 09 00 31 00 32 0a 00 
00030: 31 00 33 0a 00 2c 00 34 0a 00 31 00 35 08 00 36 
00040: 0a 00 37 00 38 0a 00 39 00 3a 08 00 3b 0a 00 39 
00050: 00 2d 07 00 3c 01 00 06 3c 69 6e 69 74 3e 01 00 
00060: 03 28 29 56 01 00 04 43 6f 64 65 01 00 0f 4c 69 
00070: 6e 65 4e 75 6d 62 65 72 54 61 62 6c 65 01 00 12 
00080: 4c 6f 63 61 6c 56 61 72 69 61 62 6c 65 54 61 62 
00090: 6c 65 01 00 04 74 68 69 73 01 00 0a 4c 43 6f 75 
000a0: 6e 74 4e 75 6d 3b 01 00 04 6d 61 69 6e 01 00 16 
000b0: 28 5b 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 
000c0: 69 6e 67 3b 29 56 01 00 04 61 72 67 73 01 00 13 
000d0: 5b 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 
000e0: 6e 67 3b 01 00 0c 53 68 6f 77 4d 79 53 74 72 69 
000f0: 6e 67 01 00 03 73 74 72 01 00 12 4c 6a 61 76 61 
00100: 2f 6c 61 6e 67 2f 53 74 72 69 6e 67 3b 01 00 0d 
00110: 53 74 61 63 6b 4d 61 70 54 61 62 6c 65 07 00 1c 
00120: 01 00 08 65 6e 75 6d 54 65 73 74 01 00 01 73 01 
00130: 00 0b 4c 53 70 69 63 69 6e 65 73 73 3b 07 00 3d 
00140: 01 00 0a 53 6f 75 72 63 65 46 69 6c 65 01 00 0d 
00150: 43 6f 75 6e 74 4e 75 6d 2e 6a 61 76 61 0c 00 12 
00160: 00 13 07 00 3e 0c 00 3f 00 40 0c 00 41 00 42 07 
00170: 00 43 0c 00 44 00 45 01 00 03 25 73 09 01 00 10 
00180: 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 
00190: 0c 00 46 00 47 07 00 48 0c 00 49 00 24 0c 00 4a 
001a0: 00 4b 0c 00 44 00 4c 0c 00 4d 00 4e 01 00 03 25 
001b0: 64 0a 07 00 4f 0c 00 50 00 51 07 00 52 0c 00 46 
001c0: 00 53 01 00 08 6e 75 6d 3d 31 32 33 33 01 00 08 
001d0: 43 6f 75 6e 74 4e 75 6d 01 00 0c 5b 4c 53 70 69 
001e0: 63 69 6e 65 73 73 3b 01 00 10 6a 61 76 61 2f 6c 
001f0: 61 6e 67 2f 53 79 73 74 65 6d 01 00 03 6f 75 74 
00200: 01 00 15 4c 6a 61 76 61 2f 69 6f 2f 50 72 69 6e 
00210: 74 53 74 72 65 61 6d 3b 01 00 08 67 65 74 43 6c 
00220: 61 73 73 01 00 13 28 29 4c 6a 61 76 61 2f 6c 61 
00230: 6e 67 2f 43 6c 61 73 73 3b 01 00 13 6a 61 76 61 
00240: 2f 69 6f 2f 50 72 69 6e 74 53 74 72 65 61 6d 01 
00250: 00 07 70 72 69 6e 74 6c 6e 01 00 15 28 4c 6a 61 
00260: 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 29 
00270: 56 01 00 06 70 72 69 6e 74 66 01 00 3c 28 4c 6a 
00280: 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 6e 67 3b 
00290: 5b 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 
002a0: 63 74 3b 29 4c 6a 61 76 61 2f 69 6f 2f 50 72 69 
002b0: 6e 74 53 74 72 65 61 6d 3b 01 00 09 53 70 69 63 
002c0: 69 6e 65 73 73 01 00 03 6f 6e 65 01 00 07 6f 72 
002d0: 64 69 6e 61 6c 01 00 03 28 29 49 01 00 04 28 49 
002e0: 29 56 01 00 06 76 61 6c 75 65 73 01 00 0e 28 29 
002f0: 5b 4c 53 70 69 63 69 6e 65 73 73 3b 01 00 11 6a 
00300: 61 76 61 2f 6c 61 6e 67 2f 49 6e 74 65 67 65 72 
00310: 01 00 07 76 61 6c 75 65 4f 66 01 00 16 28 49 29 
00320: 4c 6a 61 76 61 2f 6c 61 6e 67 2f 49 6e 74 65 67 
00330: 65 72 3b 01 00 0d 6d 79 70 72 69 6e 74 2f 50 72 
00340: 69 6e 74 01 00 28 28 4c 6a 61 76 61 2f 6c 61 6e 
00350: 67 2f 53 74 72 69 6e 67 3b 5b 4c 6a 61 76 61 2f 
00360: 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 29 56 00 21 
00370: 00 11 00 06 00 00 00 00 00 04 00 01 00 12 00 13 
00380: 00 01 00 14 00 00 00 2f 00 01 00 01 00 00 00 05 
00390: 2a b7 00 01 b1 00 00 00 02 00 15 00 00 00 06 00 
003a0: 01 00 00 00 08 00 16 00 00 00 0c 00 01 00 00 00 
003b0: 05 00 17 00 18 00 00 00 09 00 19 00 1a 00 01 00 
003c0: 14 00 00 00 2b 00 00 00 01 00 00 00 01 b1 00 00 
003d0: 00 02 00 15 00 00 00 06 00 01 00 00 00 23 00 16 
003e0: 00 00 00 0c 00 01 00 00 00 01 00 1b 00 1c 00 00 
003f0: 00 89 00 1d 00 1a 00 01 00 14 00 00 00 8b 00 06 
00400: 00 05 00 00 00 34 b2 00 02 2a b6 00 03 b6 00 04 
00410: 2a 4c 2b be 3d 03 3e 1d 1c a2 00 20 2b 1d 32 3a 
00420: 04 b2 00 02 12 05 04 bd 00 06 59 03 19 04 53 b6 
00430: 00 07 57 84 03 01 a7 ff e1 b1 00 00 00 03 00 15 
00440: 00 00 00 16 00 05 00 00 00 25 00 0a 00 26 00 1b 
00450: 00 27 00 2d 00 26 00 33 00 29 00 16 00 00 00 16 
00460: 00 02 00 1b 00 12 00 1e 00 1f 00 04 00 00 00 34 
00470: 00 1b 00 1c 00 00 00 20 00 00 00 0d 00 02 fe 00 
00480: 11 07 00 21 01 01 f8 00 21 00 09 00 22 00 13 00 
00490: 01 00 14 00 00 00 9a 00 05 00 04 00 00 00 45 b2 
004a0: 00 02 b2 00 08 b6 00 09 b6 00 0a b8 00 0b 4b 2a 
004b0: be 3c 03 3d 1c 1b a2 00 17 2a 1c 32 4e b2 00 02 
004c0: 2d b6 00 09 b6 00 0a 84 02 01 a7 ff ea 12 0c 04 
004d0: bd 00 06 59 03 10 0c b8 00 0d 53 b8 00 0e 12 0f 
004e0: b8 00 10 b1 00 00 00 03 00 15 00 00 00 1e 00 07 
004f0: 00 00 00 2b 00 0c 00 2c 00 1e 00 2d 00 28 00 2c 
00500: 00 2e 00 2f 00 3f 00 30 00 44 00 34 00 16 00 00 
00510: 00 0c 00 01 00 1e 00 0a 00 23 00 24 00 03 00 20 
00520: 00 00 00 0d 00 02 fe 00 15 07 00 25 01 01 f8 00 
00530: 18 00 01 00 26 00 00 00 02 00 27 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值