以下代码是什么意思?
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); 在Java 文件的I/O中 FileInputStream 会将文件转为输入流通过read()可以读取输入流中的数据, 当read()返回-1时代表读取结束(即读取到流的结尾)
read()方法可以传入一个参数(一个byte数组), 成为读取时的Buffer, 可以理解为一次读取多少个字节, 这里的new byte即为一次读取1024字节
再将读取的Buffer写入到输出流中
具体可以参考Java的输入输出流
页:
[1]