Java如何以十六进制显示文件内容?

在此程序中,我们逐字节读取文件内容,然后以十六进制格式打印该值。作为读取单个字节的替代方法,我们可以一次将文件内容读取到字节数组中,以更快地处理文件。

package org.nhooo.example.io;

import java.io.FileInputStream;

public class HexDumpDemo {
    public static void main(String[] args) throws Exception {
        // 使用FileInputStream打开文件
        try (FileInputStream fis = new FileInputStream("C:/Users/nhooo/data.txt")) {
            // 用于保存文件数据单个字节的变量
            int i = 0;

            // 一个计数器,每读取16个字节就打印一个新行。
            int count = 0;

            // 读取到文件末尾并以十六进制打印字节
            // 价值
            while ((i = fis.read()) != -1) {
                System.out.printf("%02X ", i);
                count++;

                if (count == 16) {
                    System.out.println("");
                    count = 0;
                }
            }
        }
    }
}

这是上述程序读取的文件的一些结果。

31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 
37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 
33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 
39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 
35 36 37 38 39 30 0A