Безопасен ли метод WriteTo(OutputStream) ByteArrayOutputStream для большого файла?JAVA

Программисты JAVA общаются здесь
Anonymous
Безопасен ли метод WriteTo(OutputStream) ByteArrayOutputStream для большого файла?

Сообщение Anonymous »

Я создаю файловую службу загрузки в контроллере Spring.
Мой ByteArrayOutputStream записан непосредственно в ответ.getOutputStream с использованием метода ByteArrayOutputStream.writeTo(response.getOutputStream) ). Пока все работает нормально.
Мой вопрос: метод ByteArrayOutputStream.writeTo() безопасен для памяти для большого файла?
Вот фрагмент кода:
@RequestMapping(value = "download/{name}", method = RequestMethod.GET)
public void download(@PathVariable("name") final String name, HttpServletResponse response) throws Exception {

try (ByteArrayOutputStream outputStream = ... /* my ByteArrayOutputStream */) {
// get the file size
int size = outputStream.size();

// filename
String filename = name;

response.setContentType("application/pdf");
response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + filename);
response.setHeader("filename", filename);
response.setContentLength(size);
response.setStatus(200);

// write directly to response
outputStream.writeTo(response.getOutputStream());

response.flushBuffer();
} catch (RuntimeException e) {
throw new RuntimeException(e);
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... r-big-file

Вернуться в «JAVA»