У меня есть некоторый Java-код, который получает изображение из базы данных и сохраняет его в файл, однако, когда я открываю его во всех программах, кроме Photoshop, я получаю ошибку, похожую на:
"Это можетбыть поврежден или использовать формат файла, который Preview не распознает. "- Этот типичный из предварительного просмотра на MAC.База данных, из которой я берусь, - это PostgreSQL, а столбец - bytea.
Мой код выглядит следующим образом:
public static void main(String[] args) throws Exception {
Connection conn = null;
try {
conn = ConnectionManager.getConnection();
String sql = "SELECT content from asset ";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
File image = new File("/Users/esklein/testing"+UUID.randomUUID()+".jpg");
FileOutputStream fos = new FileOutputStream(image);
byte[] buffer = new byte[256];
//
// Get the binary stream of our BLOB data
//
InputStream is = resultSet.getBinaryStream("content");
while (is.read(buffer) > 0) {
fos.write(buffer);
}
fos.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null && !conn.isClosed()) {
conn.close();
}
}
}
Любые идеи, почему это не выплевывает изображение,быть открыт в любом файле?Спасибо