#java #postgresql #image #fileoutputstream #bytea
#java #postgresql #изображение #fileoutputstream #bytea
Вопрос:
Мне нужно прочитать массив байтов изображения из таблицы PostgreSQL, которая выполняется как
byte[] fileBytes = resultsSet.getBytes(1);
Когда я пытаюсь записать его в файл изображения, он не открывается (неподдерживаемый тип файла). Ниже приведен код
FileOutputStream fos = new FileOutputStream("D:\test.png");
fos.write(fileBytes);
fos.close();
Комментарии:
1.
"D:\test.png"
с удвоенной обратной косой чертой; вы написали tab «est.png»2. @JoopEggen Извините, это была опечатка.
Ответ №1:
Попробуйте этот метод, у меня сработало:
InputStream in = new ByteArrayInputStream(rs.getBytes(1));
BufferedImage bImageFromConvert = ImageIO.read(in);
if(null == bImageFromConvert){
throw new Exception("Invalid image");
}
OutputStream out = new FileOutputStream("e:/images/" "test".jpg");
ImageIO.write(bImageFromConvert, "png", out);
Комментарии:
1. Я получаю
invalid image
исключение, даже еслиin
значение не равно null. Когда я пытаюсь позвонить,ImageIO.read()
он возвращаетсяnull
.2. Привет, ты сталкивался с решением?
3. Пока нет, пожалуйста, дайте мне знать, если у вас есть какие-либо другие предложения.