No desenvolvimento do programa, geralmente usamos a conversão mútua entre java.sql.blob, byte [] e inputstream, mas na API JDK, não nos fornecemos diretamente as APIs disponíveis. Os fragmentos do programa a seguir implementam principalmente o utilitário intercambiável entre eles.
1. Byte [] => BLOB
Podemos implementar o método de declaração fornecido pelo Hibernate, como:
org.hibernate.hibernate.hibernate.createblob (novo byte [1024]);
2. Blob => byte []
No momento, nenhuma API melhor é encontrada, então eu só posso implementá -la. Exemplos são os seguintes:
/ ** * Converta o tipo de blob em tipo de byte tipo * @param blob * @return */ byte privado [] blobtobytes (blob blob) {bufferinputStream is = null; tente {is = new bufferInputStream (blob.getBinaryStream ()); byte [] bytes = novo byte [(int) blob.length ()]; int len = bytes.length; int offset = 0; int read = 0; while (deslocamento <len && (read = is.read (bytes, deslocamento, len - deslocamento))> = 0) {offset += read; } retornar bytes; } catch (Exceção e) {return null; } finalmente {try {is.close (); é = nulo; } catch (ioexception e) {return null; }}}3. InputStream => byte []
byte privado [] inputStreamToByte (inputStream) lança ioexception {byteArrayOutputStream byTestream = new ByteArrayOutputStream (); int ch; while ((ch = is.read ())! = -1) {bytestream.write (ch); } byte imgdata [] = bytestream.tobytearray (); byTestream.close (); retornar imgdata; }4. Byte [] => inputStream
A conversão entre byte [] em InputStream é simples: inputStream é = novo bytearrayInputStream (novo byte [1024]);
5. InputStream => BLOB
API que pode ser fornecida através do Hibernate: Hibernate.CreateBlob (new FileInputStream ("pode ser um caminho para imagens/arquivos, etc."));
6. BLOB => InputStream
Transferência de blogs, que pode ser chamada diretamente através da API fornecida: new Blob (). GetBinaryStream ();
Os clipes acima podem ser usados como referência para os leitores.
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!