Konvertiert einen String von bytes in ASCII
Ich bin die Verbindung zu einem bluetooth-Gerät, das Antworten auf einige Parameter, die ich senden, aber als eine Antwort, die ich Lesen aus einer socket wie diese:
String data = dIn.readLine();
Wo dIn a:
DataInputStream dIn = new DataInputStream(socket.getInputStream());
Die Sache ist, dass ich die Daten empfangen, aber es ist ein byte-array Lesen auf einer Schnur. Wie kann ich konvertieren, dass die Zeichenfolge, die enthält mein byte-array in einen String mit der richtigen hexadezimal-Werte?
Vielen Dank im Voraus.
Können Sie ein Beispiel der Daten, die Sie erhalten, und wie Sie denken, Sie sollte Aussehen?
InformationsquelleAutor Sonhja | 2011-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist unklar, ob Sie versuchen zu eigentlich decodieren einer Zeichenfolge, die Sie haben, wie ein byte-array, oder ob Sie eine text-Darstellung (hex) beliebigen binären Daten. Für die erste, die Sie verwenden würden:
Für die zweite könnte man so etwas wie Apache-Commons-Codec:
Fragen Sie eine speziellere Frage haben, erhalten eine spezifische Antwort 🙂
InformationsquelleAutor Jon Skeet
Haben Sie einen Blick auf Zeichenfolge Format-Funktion. Wenn Sie angeben, die format wie "%X", es wird zurückgegeben werden, wie ein hex-string
Haben Sie Durchlaufen das byte-array zu konvertieren jeweils, wie in der obigen Funktion akzeptiert nur primitive numerische Typen.
InformationsquelleAutor Nicolas
Wickeln Sie die
DataInputStream
in einem InputStreamReader.DataInputStream.readLine()
ist veraltet.InformationsquelleAutor Graham Borland