I'm connecting to a bluetooth device that answers to some parameters I send it, but as a response I read from a socket like this:
String data = dIn.readLine();
Where dIn is a:
DataInputStream dIn = new DataInputStream(socket.getInputStream());
The thing is that I receive the data, but it's a byte array read on a string. How can I convert that string that contains my byte array into a String with the correct hexadecimal values?
Thank you in advance.
It's unclear whether you're trying to actually decode a text string which you've got as a byte array, or whether you want a text representation (in hex) of arbitrary binary data. For the first you'd use:
String text = new String(data, 0, data.length, "ASCII");
For the second you could use something like Apache Commons Codec :
String text = Hex.encodeHexString(data);
Have a look at String's Format function . If you specify the format as "%X", it will be returned as a hex string
You will have to iterate through the byte array to convert each, as the above function accepts only primitive numeric types.
Wrap the DataInputStream
in an InputStreamReader .
DataInputStream.readLine()
is deprecated.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.