все.Я использую Apache Poi для генерации файла формата Excel, я не храню его на своем диске, просто байтовый массив, затем я использую outputtream, чтобы записать байтовый массив клиенту, чтобы клиент мог загрузить файл Excel.Примерно так:
OutputStream outputStream = response.getOutputStream();
byte[] fileData = generateDownloadFile(paramters);
outputStream.write(temp);
outputStream.flush();
Однако мне интересно, существует ли метод, позволяющий добавить байтовый массив к клиенту вместо однократной записи, чтобы я мог сгенерировать некоторый байтовый массив и затем очистить их,затем сгенерируйте некоторые и очистите их, и, наконец, закройте соединение.Если при этом используется метод записи outputtream, последний перезаписывает первый.
Зачем мне это нужно?Я просто хочу отправить что-то обратно клиенту в течение короткого времени, если я сгенерирую весь байтовый массив файла excel, а затем сброслю его, соединение может быть уже закрыто и вызвать ошибку 504.
Я пытался:
- добавить метод в PrintWriter класс.Но это не сработало, поскольку мне нужно отправить байт вместо символа , я не могу открыть файл с помощью MSExcel, когда через PrintWriter.
- Я также пыталсяиспользуйте гнездо .Но для сокета все равно нужно использовать outputtream, например
new Socket().getOutputStream();
.
Я специалист по Java, даже не знаком.Может кто-нибудь помочь разобраться?Спасибо.