web文件下载和Android文件下载的区别小结

web文件下载和Android文件下载的区别

web文件下载

    //得到要下载文件的路径
    String path = getServletContext().getRealPath("/down/a.zip");
    //得到文件的名称
    //得到最后一个\位置,根据位置进行截取
    int lens = path.lastIndexOf("\\");
    String filename = path.substring(lens+1);
    //设置头信息
    response.setHeader("Content-Disposition", "attachment;filename="+filename);
    //得到文件的输入流
    InputStream in = new FileInputStream(path);
    //使用输出流操作
    OutputStream out = response.getOutputStream();
    //流对接
    int len = 0;
    byte[] b = new byte[8192];
    while((len=in.read(b))!=-1) {
        out.write(b, 0, len);
    }
    //关闭流
    in.close();

Android文件下载

URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//告诉服务器 只想下载资源的一部分
conn.setRequestProperty("Range", "bytes="+startIndex+"-"+endIndex);
InputStream is = conn.getInputStream();
byte[] buffer = new byte[8192];
int len = -1;
RandomAccessFile raf = new RandomAccessFile(getFileName(path), "rw");
raf.seek(startIndex);//每个线程写文件的开始位置都是不一样的.
while((len = is.read(buffer))!=-1){
    //把每个线程下载的数据放在自己的空间里面.
    raf.write(buffer,0, len);
}
raf.close();
is.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值