In unserer Programmentwicklung verwenden wir häufig die gegenseitige Konvertierung zwischen Java.sql.blob, byte [] und InputStream, aber in der JDK -API bieten wir uns nicht direkt verfügbare APIs. Die folgenden Programmfragmente implementieren hauptsächlich den austauschbaren Ut zwischen ihnen.
1. Byte [] => Blob
Wir können die von Hibernate bereitgestellte Anweisungsmethode implementieren, z. B.:
org.hiberNate.hiberNate.hiberNate.createblob (neues Byte [1024]);
2. Blob => byte []
Derzeit wird keine bessere API gefunden, sodass ich sie nur selbst implementieren kann. Beispiele sind wie folgt:
/ ** * BLOB -Typ konvertieren in Byte -Array -Typ * @param Blob * @return */ private byte [] blobtobytes (Blob Blob) {bufferedInputStream is = null; try {is = new BuferedInputStream (Blob.getBinaryStream ()); byte [] bytes = new Byte [(int) blob.length ()]; int len = bytes.length; int offset = 0; int read = 0; while (offset <len && (read = is.read (bytes, offset, len - offset))> = 0) {offset += read; } return bytes; } catch (Ausnahme e) {return null; } endlich {try {is.close (); ist = null; } catch (ioException e) {return null; }}}3.. InputStream => byte []
private byte [] InputStreamtobyte (InputStream) löst ioException {bytearrayoutputStream byTestream = new bytearrayoutputStream () aus; int ch; while ((ch = is.read ())! = -1) {bytestream.write (ch); } byte imgdata [] = byTestream.tobytearray (); byTestream.close (); return imgdata; }4. Byte [] => InputStream
Die Umwandlung zwischen Byte [] in InputStream ist einfach: InputStream ist = neuer BytearrayinputStream (neues Byte [1024]);
5. InputStream => Blob
API, die durch Hibernate bereitgestellt werden kann: Hibernate.createblob (neuer FileInputStream ("Kann ein Pfad für Bilder/Dateien usw.");
6. Blob => InputStream
Blog -Transfer, die direkt über die bereitgestellte API aufgerufen werden kann: New Blob (). GetBinaryStream ();
Die obigen Clips können als Referenz für Leser verwendet werden.
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!