Java中字节与16进制的互转工具类
在Java编程中,经常需要对字节数据进行处理,尤其是在网络编程、文件操作等场景下。字节数据与16进制数据的互转是一个常见的需求。本文将介绍一个Java工具类,用于实现字节与16进制之间的转换。
工具类设计
首先,我们设计一个名为HexUtil
的工具类,它将包含两个主要的静态方法:byteToHex
和hexToByte
。这两个方法分别用于将字节转换为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开发者。