HttpServletResponse PrintWriter写一个InputStream

use*_*809 6 servlets inputstream printwriter

我有一个HttpServletResponse对象,需要写一个包含在jar中的文件.以下代码段对我不起作用.

URI uri = <myclass>.class.getResource("/" + filename).toURI(); 
PrintWriter out = response.getWriter();
File f = new File(uri); 
FileReader bis = new FileReader(f);
char[] buff = new char[1024];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
    out.write(buff, 0, bytesRead);
}
Run Code Online (Sandbox Code Playgroud)

我知道这会奏效

InputStream inputStream = <myclass>.class.getResourceAsStream("/" + filename);
Run Code Online (Sandbox Code Playgroud)

但我无法让PrintWriter out.write来编写inputStream.

任何人都可以告诉我如何做到这一点.

谢谢

use*_*809 5

解决了使用以下内容

InputStream inputStream = KCSSchemaController.class.getResourceAsStream("/" + schemaname);

OutputStream output = response.getOutputStream();

ByteStreams.copy(inputStream, output);

output.flush();
Run Code Online (Sandbox Code Playgroud)