java文件下载(有非常详细的注释).

话不多说,直接贴代码:

    //文件下载
    public static String downloadFile(File file) {
            HttpServletResponse response = ServletActionContext.getResponse();
            FileInputStream fis = null;
            BufferedInputStream buff = null;
            OutputStream out = null;
            try {
               /* 如果文件存在 */
               if (file.exists()) {
                   //设置为没有缓存
                   response.reset();
                   //设置response的编码方式
                   //response.setContentType("application/x-download");
                   response.setContentType("application/ms-excel"); //这一句更细化,告诉浏览器要下载的是excel文件
                   //设置下载文件名
                   response.setHeader("Content-Disposition", "filename="+new String(file.getName().getBytes(),"UTF-8"));
                   //读出文件到i/o流
                   fis=new FileInputStream(file);
                   buff=new BufferedInputStream(fis);
                   //从response对象中得到输出流,准备下载
                   out = response.getOutputStream();
                   //PrintWriter out = response.getWriter();随便哪句都可以
                   //以字节的方式写入内容
                   int i;
                   while((i = buff.read()) != -1){
                       out.write(i);
                   }
                   //把内容全部推到文档里
                   out.flush();
               }else{
                   return "download fail";//文件不存在
               }
           } catch (Exception e) {
            // TODO: handle exception
           }finally{
               try {
                   if (buff != null)
                       buff.close();
                   if (out != null)
                       out.close();
               } catch (IOException e) {
                   return "download fail";
               }
           }
        return "download success";
    }
时间: 2024-08-10 01:19:00

java文件下载(有非常详细的注释).的相关文章

JAVA文件下载功能问题解决日志

今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的controller方法中添加了下载的方法,type和async两个参数的四种组合都不行,弃用ajax,用window.location.href='file/download?path='+file;重新发一个新的下载请求之后,保存对话框终于弹出. 2.弹出之后,发现文件名乱码,后台的解决方案代码如下:

JxBrowser Java浏览器控件详细介绍

JxBrowser能在Windows.Linux.Mac OS X (Intel and PPC-based)平台上将Mozilla Firefox浏览器完美地整合到Java AWT/Swing应用程序里.该库程序使用Gecko设计引擎来转换HTML文档.因而保证了它能与许多Internet标准(如HTML 4.CSS.XML.JavaScript以及其它)兼容. 主要功能 用来将HTML浏览程序内置到AWT/Swing用户界面上的可视浏览器控件 使用Gecko 1.9/Firefox 3代码库

更精简的代码,更详细的注释,让项目更容易维护

更精简的代码,更详细的注释,让项目更容易维护,因为项目的本质不是代码,是算法,是实现步骤, 如果代码不精简,很臃肿,时间久了,具体实现过程会记忆模糊的,代码臃肿,以后是要花费更多时间读的. 有时可以在写的时候,就一边小重构一下,不要等到以后再重构 一精简重构的一些方式: 1抽取方法:抽取常用的功能,可以放到一些综合工具类里 2抽取变量:尤其是对于要用到很多if-else结构里的变量,可以先定义一个空变量,然后根据不同的情况, 进行赋值. 3砍掉变量:一个复杂系统肯定有很多的对象和变量,其实仔细思

Java包(Package)的详细用法(转)

Java包(Package)的详细用法 http://wenwen.soso.com/z/q229375145.htm 当一个大型程序交由数个不同的程序人员开发时,用到相同的类名是很有可能的,那么如果发生了这样的事件我们该怎么办那?,在我们java程序开发中为了避免上述事件,提供了一个包的概念(package),那么既然有了这样一种方法能避免上述事件,那么我们怎样使用package那?,使用方法很简单我们只需要在我们写的程序第一行使用package关键字来声明一个包就行了,例如我们来声明一个名为

JxBrowser Java浏览器控件详细介绍及下载

JxBrowser能在Windows.Linux.Mac OS X (Intel and PPC-based)平台上将Mozilla Firefox浏览器完美地整合到Java AWT/Swing应用程序里.该库程序使用Gecko设计引擎来转换HTML文档.因而保证了它能与许多Internet标准(如HTML 4.CSS.XML.JavaScript以及其它)兼容. 主要功能 用来将HTML浏览程序内置到AWT/Swing用户界面上的可视浏览器控件 使用Gecko 1.9/Firefox 3代码库

SqlHelper 带详细中文注释

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //对数据库进行操作引入命名空间 6 using System.Data; 7 using System.Data.SqlClient; 8 using System.Configuration; 9 10 11 namespace DAL 12 { 13 public class SQLhelper 14

Java文件下载的几种方式

   本文主要是讲述Java文件下载的几种方式,更多Java技术知识,请登陆疯狂软件教育官网. publicHttpServletResponsedownload(Stringpath,HttpServletResponseresponse){ try{ //path是指欲下载的文件的路径. Filefile=newFile(path); //取得文件名. Stringfilename=file.getName(); //取得文件的后缀名. Stringext=filename.substrin

java.util.concurrent包详细分析

java.util.concurrent包详细分析 java.util.concurrent 包含许多线程安全.测试良好.高性能的并发构建块.不客气地说,创建java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作.通过提供一组可靠的.高性能并发构建块,开发人员可以提高并发类的线程安全.可伸缩性.性能.可读性和可靠性.

关于java文件下载文件名乱码问题解决方案

关于java文件下载文件名乱码问题解决方案 做为一名程序员,大家应该都遇到过乱码的问题吧!这篇文章是自己解决关于关于java文件下载文件名乱码问题的处理: String fileName = "下载的文件名"; String userAgent = request.getHeader("User-Agent"); //针对IE或者以IE为内核的浏览器: if (userAgent.contains("MSIE")||userAgent.conta

java配置环境变量--详细篇

JAVA配置环境变量详细篇 之前因为电脑系统出了故障,重装了系统,然后需要重新配置环境变量,本来心想学习java也有两年多了,配置个环境变量还不是小菜 一碟,但开始配置的时候还是弄了大半天,搜索了许多网上资料,才把环境变量给配置好,心里面挺感慨的,配置环境变量看似           简单但其中也有许多要注意的小细节,有时候一不留神就会卡很久,所以在这里总结配置环境变量的知识,并将细节列出来,希望能帮助到其他入门JAVA学习者  (建议先看其他有图的配置教程,配置不成功在来看这个帖子) 1.前往