Нужно считать файл, хранящийся в формате blob из базы данных firebird (Сам файл является архивом в формате bz2). Испробовал уже кучу вариантов, не могу понять в чем ошибка.
SQL запрос:
Раньше было так:
String query = "Select FILENAME, DOKUMENTDATA from KONTAKTDOKUMENT " +
"where KONTAKTDOKUMENTARTID=11 AND KONTAKTDOKUMENTID=" + kunde.getId() + ";";
Теперь исправил на такое:
String query = "Select FILENAME, cast(DOKUMENTDATA as BLOB SUB_TYPE TEXT) DOC from KONTAKTDOKUMENT " +
"where KONTAKTDOKUMENTARTID=11 AND KONTAKTDOKUMENTID=" + kunde.getId() + ";";
Дальше читаю и обрабатываю так:
InputStream is = rs.getBinaryStream(2);
String str = convert(is);
System.out.println(fileName);
File file = new File("E:\\Study\\alfresco\\zip", fileName + ".pdf.bz2");
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(str.getBytes());
outputStream.close();
Метод convert:
private static String convert(InputStream is) {
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result;
String str = null;
try {
result = bis.read();
while (result != -1) {
buf.write((byte) result);
result = bis.read();
}
str = buf.toString("iso-8859-1");
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
Один из вариантов, что ошибка в кодировке (Но когда исправил на iso-8859-1 имена файлов стали нормально читаться, а вот сам архив - нет , пишет, что повреждена контрольная сумма)
Эту строку уже пробовал в различных вариациях и комбинациях (utf-8, iso-8859-1, ISO8859_1 ) .
str = buf.toString("iso-8859-1");
Сейчас подключаюсь к бд так, но пробовал и через юникод
?encoding=ISO8859_1;characterEncoding=ISO8859_1
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно научить мой ChequeMaker считать минуты только в период времени с 9 по 21Я пишу парковку и там платное время с 9 до 21 и только это время меня интересует,а...
Как выбрать список сущностей с кастомным набором атрибутов через Criteria API, если у сущности есть связанная коллекция других сущностей? ЗдравствуйтеЕсть...