有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我知道Java中有字节流和字符流。混淆之处在于如何在输出语句中直接显示字节值

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

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

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


共 (3) 个答案

  1. # 1 楼答案

    如果您是指原始字节:

    BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) ;
    String name=br.readLine();
    
    System.out.write(name.getBytes("UTF-8"));
    

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

    如果您想为每个字节打印一个可读的十六进制值,您必须对上面的代码进行一些处理,但它应该是严格的

  2. # 2 楼答案

    对于UTF-8编码的字节,请尝试以下操作:

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

    如果希望将UTF-8字节值显示为十六进制(将原始字节数据表示为字符串的一种方便方式),可以这样做

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

    有关^{}的详细信息