Chunked Encoding против записи на HttpServletResponse outputStream?
Какое преимущество дает фрагментированное кодирование по сравнению с прямой записью в выходной поток HttpServletResponse небольшими фрагментами?
Таким образом, выполнение чего-то вроде кода, показанного ниже, где полное содержимое файла не буферизуется в памяти приложения, а не отправка с заголовком фрагментированного кодирования. Я использую IoUtils.copy ниже, который будет читать только 8 Кбайт из входного потока за раз.
@GetMapping("/content")
public void getContent(final HttpServletRequest request,
final HttpServletResponse response) throws IOException {
try(final InputStream is = FileUtils.openInputStream(new File("src/main/resources/test_file.txt"))) {
//Do something with is
response.setHeader("ContentType", MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setContentLength(70000);
IOUtils.copy(is, response.getOutputStream());
response.flushBuffer();
}
}