Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字节字符串转换为ASCII_Java_Android_Sockets_Byte - Fatal编程技术网

Java 将字节字符串转换为ASCII

Java 将字节字符串转换为ASCII,java,android,sockets,byte,Java,Android,Sockets,Byte,我正在连接一个蓝牙设备,该设备响应我发送的一些参数,但作为响应,我从如下套接字读取: String data = dIn.readLine(); 其中dIn为a: DataInputStream dIn = new DataInputStream(socket.getInputStream()); 问题是我接收数据,但它是一个字节数组,读取字符串。如何将包含字节数组的字符串转换为具有正确十六进制值的字符串 提前谢谢。请看一下String的。如果将指定为“%X”,它将作为十六进制字符串返回 您

我正在连接一个蓝牙设备,该设备响应我发送的一些参数,但作为响应,我从如下套接字读取:

String data = dIn.readLine();
其中dIn为a:

DataInputStream dIn = new DataInputStream(socket.getInputStream());
问题是我接收数据,但它是一个字节数组,读取字符串。如何将包含字节数组的字符串转换为具有正确十六进制值的字符串

提前谢谢。

请看一下String的。如果将指定为“%X”,它将作为十六进制字符串返回


您必须遍历字节数组以转换每个字节,因为上面的函数只接受基本的数字类型。

数据输入流
包装在一个数组中


DataInputStream.readLine()
已被弃用。

不清楚您是在尝试实际解码作为字节数组的文本字符串,还是想要对任意二进制数据进行文本表示(十六进制)。首先,您将使用:

String text = new String(data, 0, data.length, "ASCII");
对于第二种情况,您可以使用以下内容:


%X代表大写字母字符或%X代表小写字母字符。您能给出一个您正在接收的数据的示例,以及您认为它应该是什么样子吗?这或多或少是我需要的。。。但不完全如此。@Sonhja:问一个更具体的问题,得到一个更具体的答案:)
String text = Hex.encodeHexString(data);