Dalam pengembangan program kami, kami sering menggunakan konversi timbal balik antara java.sql.blob, byte [], dan inputstream, tetapi dalam JDK API, kami tidak secara langsung memberi kami API yang tersedia. Fragmen program berikut terutama menerapkan util yang dapat dipertukarkan di antara mereka.
1. Byte [] => Blob
Kami dapat mengimplementasikan metode pernyataan yang disediakan oleh Hibernate, seperti:
org.hibernate.hibernate.hibernate.createBlob (byte baru [1024]);
2. Blob => byte []
Saat ini, tidak ada API yang lebih baik yang ditemukan, jadi saya hanya bisa mengimplementasikannya sendiri. Contohnya adalah sebagai berikut:
/ ** * Konversi tipe gumpalan ke tipe array byte * @param blob * @return */ private byte [] blobtobytes (blob blob) {bufferedInputStream is = null; coba {is = new bufferedInputStream (blob.getBinaryStream ()); byte [] bytes = byte baru [(int) blob.length ()]; int len = bytes.length; int offset = 0; int baca = 0; while (offset <len && (baca = is.read (bytes, offset, len - offset))> = 0) {offset += baca; } return byte; } catch (Exception e) {return null; } akhirnya {coba {isClose (); IS = NULL; } catch (ioException e) {return null; }}}3. InputStream => byte []
private byte [] inputStreamToByte (inputStream is) melempar ioException {bytearrayoutputStream bytestream = new bytearrayoutputStream (); int ch; while ((ch = is.read ())! = -1) {bytestream.write (ch); } byte imgdata [] = bytestream.tobytearray (); bytestream.close (); kembalikan imgdata; }4. Byte [] => InputStream
Konversi antar byte [] ke inputStream sederhana: inputStream adalah = bytearrayInputStream baru (byte baru [1024]);
5. inputStream => blob
API yang dapat disediakan melalui Hibernate: hibernate.createBlob (FileInputStream baru ("bisa menjadi jalur untuk gambar/file, dll."));
6. Blob => InputStream
Transfer blog, yang dapat dipanggil langsung melalui API yang disediakan: new blob (). GetBinaryStream ();
Klip di atas dapat digunakan sebagai referensi untuk pembaca.
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!