Отрывок для создания файла из содержания блоба в Java

Передающий ввод данных пользователем к оценке () является угрозой безопасности, но также и каждый вызов оценки () создает новый экземпляр интерпретатора JavaScript. Это может быть пожирателем ресурсов.

16
задан OscarRyz 5 August 2014 в 17:10
поделиться

1 ответ

Вам нужно получить большой двоичный объект в качестве входного потока и выгрузить его содержимое в выходной поток. Таким образом, «страдание» должно выглядеть примерно так:

Blob blob = rs.getBlob(column);
InputStream in = blob.getBinaryStream();
OutputStream out = new FileOutputStream(someFile);
byte[] buff = new byte[4096];  // how much of the blob to read/write at a time
int len = 0;

while ((len = in.read(buff)) != -1) {
    out.write(buff, 0, len);
}

Если вы обнаружите, что выполняете много операций ввода-вывода, подобных этой, вы можете изучить использование Apache Commons IO , чтобы позаботиться о деталях. Тогда все после настройки потоков будет просто:

IOUtils.copy(in, out);
22
ответ дан 30 November 2019 в 21:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: