千家信息网

Java下载文件的方式有哪些

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章给大家分享的是有关Java下载文件的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.以流的方式下载public HttpServletResponse
千家信息网最后更新 2025年11月14日Java下载文件的方式有哪些

这篇文章给大家分享的是有关Java下载文件的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1.以流的方式下载

public HttpServletResponse download(String path, HttpServletResponse response) {        try {            // path是指欲下载的文件的路径。            File file = new File(path);            // 取得文件名。            String filename = file.getName();            // 取得文件的后缀名。            String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();             // 以流的形式下载文件。            InputStream fis = new BufferedInputStream(new FileInputStream(path));            byte[] buffer = new byte[fis.available()];            fis.read(buffer);            fis.close();            // 清空response            response.reset();            // 设置response的Header            response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));            response.addHeader("Content-Length", "" + file.length());            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());            response.setContentType("application/octet-stream");            toClient.write(buffer);            toClient.flush();            toClient.close();        } catch (IOException ex) {            ex.printStackTrace();        }        return response;    }

2.下载本地文件

public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {        // 下载本地文件        String fileName = "Operator.doc".toString(); // 文件的默认保存名        // 读到流中        InputStream inStream = new FileInputStream("c:/Operator.doc");// 文件的存放路径        // 设置输出的格式        response.reset();        response.setContentType("bin");        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");        // 循环取出流中的数据        byte[] b = new byte[100];        int len;        try {            while ((len = inStream.read(b)) > 0)                response.getOutputStream().write(b, 0, len);            inStream.close();        } catch (IOException e) {            e.printStackTrace();        }    }

3.下载网络文件

public void downloadNet(HttpServletResponse response) throws MalformedURLException {        // 下载网络文件        int bytesum = 0;        int byteread = 0;         URL url = new URL("windine.blogdriver.com/logo.gif");         try {            URLConnection conn = url.openConnection();            InputStream inStream = conn.getInputStream();            FileOutputStream fs = new FileOutputStream("c:/abc.gif");             byte[] buffer = new byte[1204];            int length;            while ((byteread = inStream.read(buffer)) != -1) {                bytesum += byteread;                System.out.println(bytesum);                fs.write(buffer, 0, byteread);            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }

4.支持在线打开的方式

public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {        File f = new File(filePath);        if (!f.exists()) {            response.sendError(404, "File not found!");            return;        }        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));        byte[] buf = new byte[1024];        int len = 0;         response.reset(); // 非常重要        if (isOnLine) { // 在线打开方式            URL u = new URL("file:///" + filePath);            response.setContentType(u.openConnection().getContentType());            response.setHeader("Content-Disposition", "inline; filename=" + f.getName());            // 文件名应该编码成UTF-8        } else { // 纯下载方式            response.setContentType("application/x-msdownload");            response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());        }        OutputStream out = response.getOutputStream();        while ((len = br.read(buf)) > 0)            out.write(buf, 0, len);        br.close();        out.close();    }

感谢各位的阅读!关于"Java下载文件的方式有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文件 方式 内容 文件名 更多 篇文章 网络 路径 在线 不错 实用 重要 后缀 形式 数据 文章 格式 看吧 知识 编码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器下载东西显示内存不足 卫星互联网科技 银行冬奥网络安全保障 手机如何远程云服务器 水晶网络安全密钥 简述软件开发中代码调试过程 access制作问卷数据库 软件开发经营和维护的费用 贵州网络安全知识答案 服务器 限制网速 公安部户籍数据库更新周期 互联网金融 转型科技金融 数据库和模块区别 石家庄网络视频服务器 cmcc服务器通讯失败 淄博市公安局网络安全保卫分局 网络安全黑板报字体手写 手机数据库怎么打开不了 该文档在软件开发中 CCTV管理服务器的作用是什么 崇明区数据软件开发直销价格 网络安全考研招生 南京魔拉网络技术有限公司 安徽信一企互联网科技 大兴区正规软件开发推荐咨询 嵌入式软件开发有中年危机么 涵江网络技术部 网络安全视频大全简单又漂亮 和平精英苹果区怎么连不上服务器 人渣服务器微信支付不了
0