如何在java控制台中显示字节流值

时间:2013-10-25 19:35:10

标签: java stream

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

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

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

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

如果你想为每个字节打印一个可读的十六进制值,你将需要对上面的代码进行一些处理,但它应该是直截了当的。

答案 1 :(得分:0)

尝试使用UTF-8编码的字节:

byte [] bytes = name.getBytes("UTF-8");
for( int i=0; i < bytes.length ;++i)
    System.out.println(bytes[i]);

答案 2 :(得分:0)

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

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

DatatypeConverter.printHexBinary(byte[])

的详细信息