欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

【Java】java 文件下载,

来源: javaer 分享于  点击 39747 次 点评:6

【Java】java 文件下载,


  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;
    }

// 下载本地文件
     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;
  
while((len=inStream.read(b)) >0)
  response.getOutputStream().write(b,
0,len); 
  inStream.close();
  //下载网络文件

   int bytesum=0;

int byteread=0;

URL url 
= new URL("windine.blogdriver.com/logo.gif");

 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);

     }

相关文章

    暂无相关文章
相关栏目:

用户点评