#java #arrays #spring #jdbc
#java #массивы #весна #jdbc
Вопрос:
Я пытаюсь прочитать данные clob из базы данных Oracle и записать их в файл. Данные обрезаются! Я не могу записать полные данные из базы данных в файл. Пожалуйста, предложите лучший способ записи больших данных clob в файл?
Вот мой блок кода:
String fileNamefromDB = "graph.jrxml";
File data = new File(fileNamefromDB);
while (rs.next()) {
Reader dataReader = rs.getClob("xml_clob").getCharacterStream();
FileWriter writer = new FileWriter(data);
char[] buffer = new char[1];
while (dataReader.read(buffer) > 0) {
writer.write(buffer);
}
}
Комментарии:
1. Почему вы не используете
read()
вместо этого, если используете только буфер из 1 символа? Также обратите внимание, что-1
это сигнализирует только об окончании потока; обычно это не должно происходить в правильно реализованных потоках, но это не выходит за рамки возможностей, что вы можете иногда не читать байты, даже если конец потоков не достигнут.2. Кроме того, вы убедились, что сам clob на самом деле не обрезан?
3. @MarkRotteveel спасибо за ваш ответ проблема заключалась в том, что я не удалял данные из памяти …. это решило мою проблему: