0

我知道在 Java 中我们有字节流和字符流。困惑是如何在输出语句中直接显示字节值。

例如,我在控制台中输入我的名字,然后使用:

BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) ;
String name=br.readLine();

如果我显示名称,我会得到我输入的值。如何以字节值显示它?

4

3 回答 3

0

如果您的意思是原始字节:

BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) ;
String name=br.readLine();

System.out.write(name.getBytes("UTF-8"));

请注意,输出取决于您选择的特定编码(在本例中为 UTF-8)。

如果你想为每个字节打印一个可读的十六进制值,你将不得不对上面的代码做一些工作,但它应该是直截了当的。

于 2013-10-25T19:39:18.550 回答
0

试试这个 UTF-8 编码字节:

byte [] bytes = name.getBytes("UTF-8");
for( int i=0; i < bytes.length ;++i)
    System.out.println(bytes[i]);
于 2013-10-25T19:44:47.583 回答
0

如果您想将 UTF-8 字节值显示为十六进制(将原始字节数据表示为字符串的便捷方式),您可以执行此操作。

String name=br.readLine();
String nameUTF8Hex = DatatypeConverter.printHexBinary(name.getBytes("UTF-8"));
System.out.println(nameUTF8Hex);

详细信息DatatypeConverter.printHexBinary(byte[])

于 2013-10-25T20:57:07.763 回答