Самый простой способ преобразования Blob в массив байтов
Заголовок: Как легко преобразовать Blob в массив байтов в Java?
Тело сообщения:
Я работаю с базой данных MySQL и мне нужно преобразовать тип данных Blob в массив байтов. Каков самый простой способ сделать это? Я использую язык программирования Java. Заранее спасибо за помощь!
3 ответ(ов)
В классе MySQL BLOB имеется следующая функция:
blob.getBytes
Используйте её следующим образом:
// (предполагая, что у вас есть объект ResultSet с именем RS)
Blob blob = rs.getBlob("SomeDatabaseField");
int blobLength = (int) blob.length();
byte[] blobAsBytes = blob.getBytes(1, blobLength);
// Освободите объект BLOB и очистите память. (начиная с JDBC 4.0)
blob.free();
Обратите внимание, что важно вызывать метод free()
для освобождения ресурсов, занимаемых объектом BLOB, после того как вы закончите с ним работать, так как это поможет избежать утечек памяти.
Самый простой способ сделать это:
byte[] bytes = resultSet.getBytes("my_field");
Вы также можете получить массив байтов из экземпляра Blob следующим образом:
Blob myBlob = null;
byte[] bytes = myBlob.getBinaryStream().readAllBytes();
Учтите, что метод getBinaryStream()
возвращает объект InputStream
, и использование readAllBytes()
требует, чтобы ваш проект использовал Java 9 или выше. Убедитесь, что вы обрабатываете возможные исключения, такие как SQLException
и IOException
, чтобы избежать проблем при выполнении этого кода.
Преобразование 'ArrayList<String>' в 'String[]' в Java
Как объявить массив в одну строку?
Как преобразовать строку Java в byte[]?
Java - MySQL: Не разрешено извлечение открытого ключа (Public Key Retrieval)
Как преобразовать jsonString в JSONObject в Java?