Java中字节与16进制的互转工具类

在Java编程中,经常需要对字节数据进行处理,尤其是在网络编程、文件操作等场景下。字节数据与16进制数据的互转是一个常见的需求。本文将介绍一个Java工具类,用于实现字节与16进制之间的转换。

工具类设计

首先,我们设计一个名为HexUtil的工具类,它将包含两个主要的静态方法:byteToHexhexToByte。这两个方法分别用于将字节转换为16进制字符串,以及将16进制字符串转换为字节。

类图

classDiagram
    class HexUtil {
        +byteToHex(byte[] bytes) : String
        +hexToByte(String hex) : byte[]
    }

代码实现

以下是HexUtil工具类的实现代码:

public class HexUtil {

    public static String byteToHex(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02X", b));
        }
        return sb.toString();
    }

    public static byte[] hexToByte(String hex) {
        int len = hex.length();
        byte[] bytes = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            bytes[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4)
                                 + Character.digit(hex.charAt(i + 1), 16));
        }
        return bytes;
    }
}

使用示例

下面是一个使用HexUtil类进行字节与16进制互转的示例:

public class HexUtilTest {
    public static void main(String[] args) {
        byte[] bytes = { 1, 2, 3, 4 };
        String hex = HexUtil.byteToHex(bytes);
        System.out.println("16进制字符串: " + hex); // 输出: 01020304

        byte[] bytesFromHex = HexUtil.hexToByte(hex);
        System.out.println("字节数组: ");
        for (byte b : bytesFromHex) {
            System.out.print(b + " ");
        }
        // 输出: 1 2 3 4
    }
}

结语

通过上述工具类HexUtil,我们可以方便地在Java程序中实现字节与16进制之间的转换。这在处理二进制数据、网络通信等方面非常有用。希望本文能够帮助到需要进行字节与16进制转换的Java开发者。