Java - Store byte-array als String in die DB und erstellen byte-array mit String-Wert
Ich habe ein byte-array mit dem Wert [B@6c89db9a
habe ich gespeichert, dieser Wert in einer MySQL-db als string-Repräsentation - mybyteArray.toString()
Ich würde gerne den gesicherten Wert aus der Datenbank und erstellen Sie ein neues byte-array mit dem string-Wert des ursprünglichen byte-array.
Ich habe versucht, die Beispiele Java Byte-Array zu String zu Byte-Array
und byte zu string und Umgekehrt
Allerdings bin ich nicht immer die ursprünglichen byte-array-Wert. Es erzeugt einen anderen Wert. Kann jemand bitte beraten?
ich habe ein byte-array mit dem Wert [B@6c89db9a habe ich gespeichert, dieser Wert ... ... das ist kein Wert. Es ist ein völlig nutzlos (außerhalb von Java) hashcode. Die
ja, ich benutze es für die Authentifizierung, deshalb muss ich es speichern
toString()
- Methode eines array nicht "drucken" den Inhalt eines Arrays.ja, ich benutze es für die Authentifizierung, deshalb muss ich es speichern
InformationsquelleAutor Santiago | 2013-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht Wert. Es ist ein völlig nutzlos (außerhalb von Java) hashcode. Die
toString()
- Methode, der ein array enthält nicht drucken Sie den Inhalt von einem array. Arrays überschreiben nichttoString()
und daherObject.toString()
genannt wird.Wenn Sie speichern wollen, ein array von beliebigen bytes in die MySQL-würden Sie wollen, um eine
BLOB
geben (oder vielleichtVARBINARY
? es ist schon eine Weile, da ich habe MySQL aber es scheint aus einer schnellen google-Sie sind im Grunde die gleichen, die in modernen Versionen) in der Tabelle und speichern die bytes:Ihre vorbereitete Anweisung würde wie folgt Aussehen:
Und Sie würde legen Sie die bytes über:
Bearbeiten, hinzufügen von Kommentaren: haben Sie einige bytes in einem array. Wenn diese bytes stellen eine Zeichenfolge, und Sie wissen, was das Zeichen gesetzt ist, konvertieren Sie Sie zu einem
String
mit derString
Konstruktor, ein Zeichen setzen:Zum Beispiel, wenn Sie repräsentieren eine UTF-8-Zeichenfolge, die Sie verwenden würden:
Sie dachte ... falsch. Das Ergebnis ein array ist
toString()
ist ganz und gar bedeutungslos außerhalb des JVM-Interna.OK, so können Sie vorschlagen, wie ich das speichern kann das byte-array in die dB, ohne mit blob etc?
irgendwelche Ideen, was getan werden kann??
Meine Antwort deckt sich die beiden möglichen Lösungen. Die einzige andere (lächerlich, hacky, niemand-wäre-je-do-that), was Sie tun könnten ist, konvertieren Sie das byte-array auf ein array von zahlen im JSON-Format und speichern Sie es auf diese Weise.
InformationsquelleAutor Brian Roach
Für das Protokoll:
andere Lösung wäre, speichern die base64-encoded byte-array finden
https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html
Die Frage ist zu alt, also ich werde nicht näher auf diese .
InformationsquelleAutor raudi
Laut
- Objekt.toString()
-Deshalb, was Sie speichern nicht enthalten die real Wert Ihres byte-array.
InformationsquelleAutor JHS
Können Sie versuchen, die zwei Funktionen unten, um zu beenden Ihre Transformation jobs:
InformationsquelleAutor shuaizki