private final static String[] hexSymbols = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
public final static int BITS_PER_HEX_DIGIT = 4;
public static String toHexFromByte(final byte b) {
byte leftSymbol = (byte) ((b >>> BITS_PER_HEX_DIGIT) & 0x0f);
byte rightSymbol = (byte) (b & 0x0f);
return (hexSymbols[leftSymbol] + hexSymbols[rightSymbol]);
}
public static String toHexFromBytes(final byte[] bytes) {
if (bytes == null || bytes.length == 0) {
return ("");
}
// there are 2 hex digits per byte
StringBuilder hexBuffer = new StringBuilder(bytes.length * 2);
// for each byte, convert it to hex and append it to the buffer
for (int i = 0; i < bytes.length; i++) {
hexBuffer.append(toHexFromByte(bytes[i]));
}
return (hexBuffer.toString());
}
public static void main(final String[] args) throws IOException {
try {
FileInputStream fis = new FileInputStream(new File("D:/source/HWDAS/db/00_database/00000002_HWDAS_HitSQLServerCLR.dll"));
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
System.out.println(toHexFromBytes(bytes));
} catch (Exception e) {
e.printStackTrace();
}
}
文件直接转化为16进制
最新推荐文章于 2022-09-28 18:54:06 发布