heroking146 发表于 2020-12-20 16:22:34

以下代码是什么意思?

class DownServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      response.setHeader("Content-Disposition","attachment;filename=1.jpg");
      
      FileInputStream in = new FileInputStream(this.getServletContext().getRealPath("1.jpg"));
      OutputStream out = response.getOutputStream();

      byte[]bs = new byte;
      int i=0;
      while ((i=in.read(bs))!=-1){
               out.write(bs,0,i);
      }
      in.close();
    }
以下代码怎么理解????
byte[]bs = new byte;
      int i=0;
      while ((i=in.read(bs))!=-1){
               out.write(bs,0,i);

UncatchError 发表于 2020-12-24 11:30:07

在Java 文件的I/O中 FileInputStream 会将文件转为输入流通过read()可以读取输入流中的数据, 当read()返回-1时代表读取结束(即读取到流的结尾)
read()方法可以传入一个参数(一个byte数组), 成为读取时的Buffer, 可以理解为一次读取多少个字节, 这里的new byte即为一次读取1024字节
再将读取的Buffer写入到输出流中

具体可以参考Java的输入输出流
页: [1]
查看完整版本: 以下代码是什么意思?