Dans notre développement de programme, nous utilisons souvent la conversion mutuelle entre Java.Sql.Blob, Byte [] et InputStream, mais dans l'API JDK, nous ne nous fournissons pas directement les API disponibles. Les fragments de programme suivants implémentent principalement les utils interchangeables entre eux.
1. Octet [] => blob
Nous pouvons implémenter la méthode d'énoncé fournie par Hibernate, comme:
org.hibernate.hibernate.hibernate.createblob (nouvel octet [1024]);
2. Blob => octet []
À l'heure actuelle, aucune meilleure API n'est trouvée, donc je ne peux que l'implémenter moi-même. Les exemples sont les suivants:
/ ** * Convertir le type Blob en type de tableau d'octets * @param blob * @return * / byte privé [] blobToBytes (blob blob) {tampondInputStream is = null; try {is = new BufferedInputStream (blob.getBinaryStream ()); octet [] bytes = nouveau octet [(int) blob.length ()]; int len = bytes.length; int offset = 0; int lecture = 0; while (offset <len && (read = is.read (bytes, offset, len - offset))> = 0) {offset + = read; } retour des octets; } catch (exception e) {return null; } enfin {try {is.close (); est = null; } catch (ioException e) {return null; }}}3. InputStream => byte []
octet privé [] inputStreamtoByte (inputStream is) lève ioException {bytearrayoutputStream byteStream = new bytearrayoutputStream (); int ch; while ((ch = is.read ())! = -1) {bytestream.write (ch); } octet imgdata [] = bytestream.toByTearray (); bytestream.close (); Retour imgdata; }4. octet [] => InputStream
La conversion entre octet [] en InputStream est simple: InputStream est = new bytearrayInputStream (New Byte [1024]);
5. InputStream => blob
API qui peut être fournie via HiberNate: HiberNate.CreateBlob (new FileInputStream ("peut être un chemin pour les images / fichiers, etc."));
6. blob => inputStream
Transfert de blog, qui peut être appelé directement via l'API fournie: new Blob (). GetBinaryStream ();
Les clips ci-dessus peuvent être utilisés comme référence pour les lecteurs.
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!