getWriter()
getOutputStream();
区别
1. getWriter() 用于向客户机回送字符数据
2. getOutputStream() 返回的对象,可以回送字符数据,也可以回送字节数据(二进制数据)
OutputStream os=response.getOutputStream();
os.write("hello,world".getBytes());
如何选择:
如果我们是回送字符数据,则使用 PrintWriter对象 ,效率高
如果我们是回送字节数据(binary date) ,则只能使用 OutputStream
这两个流不能同时使用.
OutputStream os=response.getOutputStream();
os.write("hello,world".getBytes());
PrintWriter out=response.getWriter();
out.println("abc");
报错:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
不能同时使用的原因:
web服务器检测没有response相关流是否关闭,如果没有关闭,就关闭流。虽然会自动关闭,但还是提倡自己os.close