翻过高山走不出你
一个很好的用例ByteBuffer(尽管byte[]在这里就足够了):byte[] toHex(Path path) { byte[] content = Files.readAllBytes(path); ByteBuffer buf = ByteBuffer.allocate(content.length * 2); for (byte b : content) { byte[] cc = String.format("%02x", 0xFF & b).getBytes(StandardCharsets.US_ASCII); buf.put(cc); } return buf.array();}速度提升: for (byte b : content) { int c = (b >> 4) & 0xF; int d = b & 0xF; buf.put((byte) (c < 10 ? '0' + c : 'a' + c - 10)); buf.put((byte) (d < 10 ? '0' + d : 'a' + d - 10)); }这假设文件不大。(但在这种情况下,十六进制就没有意义。)