Cuando quiero escribir todo el contenido de un archivo en un OutputStream
, por lo general asignar un búfer como byte[]
, a continuación, hacer un bucle for
a read
datos del archivo de InputStream
en el búfer y escribir el contenido del búfer en el OutputStream
, hasta que el InputStream
no tenga más bytes disponibles.¿Existe alguna forma mejor de escribir el contenido completo de un archivo en un OutputStream?
Esto me parece bastante torpe. ¿Hay una mejor manera de hacer esto?
Además, no estoy seguro del tamaño del búfer. Por lo general, estoy asignando 1024 bytes, porque se siente bien. ¿Hay una mejor manera de determinar un tamaño de búfer razonable?
En mi caso actual, quiero copiar el contenido completo de un archivo en la secuencia de salida que escribe el contenido de una respuesta HTTP. Por lo tanto, esta no es una pregunta sobre cómo copiar archivos en el sistema de archivos.
¿Cómo podría verificar mi unidad lo que se está escribiendo en OutputStream? ServletOutputStream mockOutput = mock (ServletOutputStream.class); \t \t when (response.getOutputStream()). ThenReturn (mockOutput); –