Кажется, где-то есть некоторая путаница, хотя я точно не знаю, где именно.
Что вы можете сделать с OutputStream ?Почему, вы можете написать в него, и это все.Это означает, что если вы получили (или посмотрите вверх) выходной поток, то вы должны предоставить данные, а это значит, что они у вас уже есть.вы сами напрямую не вызываете write
для OutputStream, но передаете этот поток в библиотеку flatworm (которая, в свою очередь, запишет в него выходные данные).В этом случае у вас есть отладочная «ловушка» - flatworm запишет файл в любой выходной поток, который вы ему отправите.Поэтому в этом случае вместо передачи потока сервлета вы передаете созданный вами поток.
Это может быть ByteArrayOutputStream
, который (после возврата метода flatworm) вы можетепроверить, чтобы получить записанные байты.На этом этапе вы можете вручную записать их в выходной поток ответа.Или, может быть, вам нужно сделать что-то немного более хитрое и создать свою собственную потоковую оболочку, которая записывает прямо в базовый поток ответов, но регистрирует в пути - и передает это плоскому червю.вы взаимодействуете с выходным потоком, тогда «ваш» код уже хранит данные где-то локально, и это просто вопрос захвата / доступа к ним.