В разработке нашей программы мы часто используем взаимное преобразование между java.sql.blob, byte [] и inputstream, но в JDK API мы напрямую не предоставляем нам доступные API. Следующие фрагменты программы в основном реализуют взаимозаменяемый UTIL между ними.
1. Byte [] => Blob
Мы можем реализовать метод заявления, предоставленный Hibernate, например:
org.hibernate.hibernate.hibernate.createblob (новый байт [1024]);
2. Blob => byte []
В настоящее время нет лучшего API, поэтому я могу только реализовать его сам. Примеры следующие:
/ ** * Преобразовать тип Blob в тип массива Byte * @param blob * @return */ private byte [] blobtobytes (blob blob) {bufferedinptstream 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; } вернуть байты; } catch (Exception e) {return null; } наконец {try {is.close (); is = null; } catch (ioException e) {return null; }}}3. inputStream => byte []
private byte [] inputstreamtobyte (inputstream is) бросает ioexception {bytearrayoutputstream bytestream = new BytearrayOutputStream (); int ch; while ((ch = is.read ())! = -1) {bytestream.write (ch); } byte imgdata [] = bytestream.tobytearray (); bytestream.close (); вернуть Imgdata; }4. byte [] => inputstream
Преобразование между Byte [] в inputstream проста: inputStream IS = new BytearRayinptStream (новый байт [1024]);
5. inputstream => blob
API, который может быть предоставлен через hibernate: hibernate.createblob (new FileInputStream («Может быть, такие пути, как изображения/файлы»);
6. blob => inputstream
Передача блога, которую можно вызвать непосредственно через предоставленный API: new Blob (). GetBinaryStream ();
Приведенные выше клипы могут использоваться в качестве ссылки для читателей.
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!