设置流 相关的坐标 — 实现流的复制(将输入流【本地文件先输入到内存】 输入到内容,然后将该流输出到浏览器)
package com.itheima.web.reponse;
import org.apache.commons.io.IOUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 响应字节数据: 设置字节数据的响应体
*/
@WebServlet("/resp4")
public class ResponseDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 读取文件(用file类的输入流)
FileInputStream fis = new FileInputStream("C:\\Users\\aufs\\Desktop\\1.jpg");
// 2. 获取response字节输出流
ServletOutputStream os = resp.getOutputStream(); // 这个输出流是输出到浏览器页面中
// 3. 完成流的copy
// byte[] buff = new byte[1024]; // 定义一个桶,桶的大小为1个Kb
// int len = 0;
// while ((len = fis.read(buff)) != -1){
// os.write(buff,0,len); // 读到多少,写多少
// }
IOUtils.copy(fis,os); // 将输入流和输出流传入进去
// 关闭输入流(输入流由服务器来关)
fis.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req,resp);
}
}