java输出十六进制(ByteArrayOutputStream)
我有:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
encoder.encode(question, outputStream);
当System.out.println(outputStream)
打印出这个。。我看到0►☻☺♣▬♂test some
,我想看到类似十六进制的30 04 12 54 33
我该怎么做
谢谢
我能够将二进制文件写入如下文件:
File file = new File("out.bin");
FileOutputStream filename = new FileOutputStream(file);
outputStream.writeTo(filename);
# 1 楼答案
尽管
System.out.println()
方法可以打印出不同的内容,但它主要用于打印字符串。为此,它将尝试根据平台或某些明确给定的字符编码将输入转换为字符串。要将原始字节打印为十六进制,在打印之前需要进行一些操作。下面的例子可能对您有用getHex
方法来自http://www.rgagnon.com/javadetails/java-0596.html# 2 楼答案
可以使用整数。toHexString()http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#toHexString(int)