You can convert a byte array to a hexadecimal string and vice versa in Java using the Hex
class from the org.apache.commons.codec.binary
package, which is part of the Apache Commons Codec library. Here's how you can do it:
1. Convert Byte Array to Hexadecimal String:
java
import org.apache.commons.codec.binary.Hex;
public class ByteArrayToHexExample {
public static void main(String[] args) {
byte[] byteArray = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // "Hello" in ASCII
String hexString = Hex.encodeHexString(byteArray);
System.out.println("Hexadecimal String: " + hexString);
}
}
In this example, the Hex.encodeHexString
method converts the byte array to a hexadecimal string representation.
2. Convert Hexadecimal String to Byte Array:
java
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
public class HexToByteArrayExample {
public static void main(String[] args) {
String hexString = "48656C6C6F"; // "Hello" in hexadecimal
try {
byte[] byteArray = Hex.decodeHex(hexString);
System.out.println("Byte Array: " + byteArrayToString(byteArray));
} catch (DecoderException e) {
System.err.println("Invalid hexadecimal string");
}
}
public static String byteArrayToString(byte[] byteArray) {
StringBuilder sb = new StringBuilder();
for (byte b : byteArray) {
sb.append((char) b);
}
return sb.toString();
}
}
In this example, the Hex.decodeHex
method converts the hexadecimal string back to a byte array. We also define the byteArrayToString
method to convert the byte array to a readable string.
To use the Apache Commons Codec library, you need to add it to your project's dependencies. If you're using a build tool like Maven or Gradle, you can include the library as a dependency in your project's configuration file.
Please note that while the example above uses the Apache Commons Codec library, you can also achieve similar functionality using built-in Java classes like ByteBuffer
and String
. However, using a library like Apache Commons Codec can simplify the process and handle edge cases more gracefully.
Comments
Post a Comment