En el desarrollo de nuestro programa, a menudo utilizamos la conversión mutua entre java.sql.blob, byte [] y inputstream, pero en la API JDK, no nos proporcionamos directamente las API disponibles. Los siguientes fragmentos del programa implementan principalmente el Util de intercambio entre ellos.
1. Byte [] => Blob
Podemos implementar el método de declaración proporcionado por Hibernate, como:
org.hibernate.Hibernate.Hibernate.CreateBlob (nuevo byte [1024]);
2. Blob => Byte []
En la actualidad, no se encuentra una API mejor, por lo que solo puedo implementarlo yo mismo. Los ejemplos son los siguientes:
/ ** * Convertir el tipo de blob en la matriz de byte * @param blob * @return */ private byte [] blobTobytes (blob blob) {bufferedInputStream is = null; try {is = new BufferedInputStream (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; } bytes de retorno; } capt (excepción e) {return null; } finalmente {try {is.close (); es = nulo; } catch (ioException e) {return null; }}}3. InputStream => Byte []
Private byte [] inputStreamTobyte (InputStream is) lanza IOException {byteArArAyOutputStream byTRESTREAM = new ByteArRayOutputStream (); int ch; while ((ch = is.Read ())! = -1) {bytreStream.write (ch); } byte imgData [] = bytreStream.tobytearray (); bytestream.close (); devolver imgData; }4. Byte [] => InputStream
La conversión entre Byte [] a InputStream es simple: InputStream es = nuevo bytearrayInputStream (nuevo byte [1024]);
5. InputStream => Blob
API que se puede proporcionar a través de Hibernate: Hibernate.CreateBlob (nuevo FileInputStream ("puede ser una ruta para imágenes/archivos, etc."));
6. Blob => InputStream
Transferencia de blog, que se puede llamar directamente a través de la API proporcionada: New Blob (). GetBinaryStream ();
Los clips anteriores se pueden usar como referencia para los lectores.
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!