欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java通過url下載文件并輸出的方法

 更新時間:2018年01月10日 14:32:54   作者:心境666  
下面小編就為大家分享一篇java通過url下載文件并輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

實例如下所示:

controller:
@RequestMapping(value = "/{loanid}/{atmtType}")
 public void doGet(@PathVariable("loanid") String loanid,@PathVariable("atmtType") String atmtType,
   HttpServletRequest req,HttpServletResponse response) {
  Map<String,String> map = new HashMap<String,String>();
  map.put("loanid", loanid);
  Map<String, String> urlByLoanid= new HashMap<String,String>();
 // Map<String, String> urlByLoanid = zcmQueryInfoService.queryUrlByLoanid(map);
  try {
   if(urlByLoanid!=null){
    String wjurl="http://10.0.15.11:8080/gateway//nfs/marvel-core-admin/2017/10/11/compact_seal_17101119371231615_7.pdf";
    //String wjurl = urlByLoanid.get("url");
    int i = wjurl.lastIndexOf("/");
    String fileName = wjurl.substring(i+1);
    
    URL url = new URL(wjurl); 
    HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
    //設(shè)置超時間為3秒 
    conn.setConnectTimeout(3*1000); 
    //防止屏蔽程序抓取而返回403錯誤 
    conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); 
    //得到輸入流 
    InputStream inputStream = conn.getInputStream(); 
    //獲取自己數(shù)組 
    byte[] bs = readInputStream(inputStream); 
    response.setContentType("application/octet-stream;charset=ISO8859-1");
    BufferedOutputStream output = null;
    BufferedInputStream input = null;
     try {
      output = new BufferedOutputStream(response.getOutputStream());
      // 中文文件名必須轉(zhuǎn)碼為 ISO8859-1,否則為亂碼
      String fileNameDown = new String(fileName.getBytes(), "ISO8859-1");
      // 作為附件下載
      response.setHeader("Content-Disposition", "attachment;filename=" + fileNameDown);
  
      output.write(bs);
      response.flushBuffer();
     } catch (Exception e) {
      log.error("Download log file error", e);
     } // 用戶可能取消了下載
     finally {
      if (input != null)
       try {
        input.close();
       } catch (IOException e) {
        e.printStackTrace();
       }
      if (output != null)
       try {
        output.close();
       } catch (IOException e) {
        e.printStackTrace();
       }
     }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
/** 
  * 從輸入流中獲取字節(jié)數(shù)組 
  * @param inputStream 
  * @return 
  * @throws IOException 
  */ 
 public static byte[] readInputStream(InputStream inputStream) throws IOException { 
  byte[] buffer = new byte[1024]; 
  int len = 0; 
  ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
  while((len = inputStream.read(buffer)) != -1) { 
   bos.write(buffer, 0, len); 
  } 
  bos.close(); 
  return bos.toByteArray(); 
 } 

以上這篇java通過url下載文件并輸出的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java編程實現(xiàn)逆波蘭表達(dá)式代碼示例

    Java編程實現(xiàn)逆波蘭表達(dá)式代碼示例

    本文主要對Java算法逆波蘭表達(dá)式的相關(guān)內(nèi)容作了介紹,涉及逆波蘭表達(dá)式的定義已經(jīng)在Java中的實現(xiàn),具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • java實現(xiàn)小貓釣魚游戲

    java實現(xiàn)小貓釣魚游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)小貓釣魚游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • IDEA+maven+SpringBoot+JPA+Thymeleaf實現(xiàn)Crud及分頁

    IDEA+maven+SpringBoot+JPA+Thymeleaf實現(xiàn)Crud及分頁

    這篇文章主要介紹了不需要電腦任何操作基于IDEA + maven + SpringBoot + JPA + Thymeleaf實現(xiàn)CRUD及分頁,需要的朋友可以參考下
    2018-03-03
  • JVM內(nèi)存結(jié)構(gòu):程序計數(shù)器、虛擬機(jī)棧、本地方法棧

    JVM內(nèi)存結(jié)構(gòu):程序計數(shù)器、虛擬機(jī)棧、本地方法棧

    JVM 基本上是每家招聘公司都會問到的問題,它們會這么無聊問這些不切實際的問題嗎?很顯然不是。由 JVM 引發(fā)的故障問題,無論在我們開發(fā)過程中還是生產(chǎn)環(huán)境下都是非常常見的
    2021-06-06
  • java Spring整合Freemarker的詳細(xì)步驟

    java Spring整合Freemarker的詳細(xì)步驟

    本文對Spring整合Freemarker步驟做了詳細(xì)的說明,按步驟操作一定可以整合通過,這里提供給大家做參考
    2013-11-11
  • MyBatisPlus 查詢selectOne方法實現(xiàn)

    MyBatisPlus 查詢selectOne方法實現(xiàn)

    本文主要介紹了MyBatisPlus 查詢selectOne方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SpringBoot集成Sharding Jdbc使用復(fù)合分片的實踐

    SpringBoot集成Sharding Jdbc使用復(fù)合分片的實踐

    數(shù)據(jù)庫分庫分表中間件是采用的 apache sharding。本文主要介紹了SpringBoot集成Sharding Jdbc使用復(fù)合分片的實踐,具有一定的參考價值,感興趣的可以了解一下
    2021-09-09
  • Java BigDecimal使用方法詳解

    Java BigDecimal使用方法詳解

    Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數(shù)進(jìn)行精確的運算。雙精度浮點型變量double可以處理16位有效數(shù),但在實際應(yīng)用中,可能需要對更大或者更小的數(shù)進(jìn)行運算和處理
    2022-12-12
  • Spring中的異步方法@Async失效的原因詳解

    Spring中的異步方法@Async失效的原因詳解

    這篇文章主要介紹了Spring中的異步方法@Async失效的原因詳解,@Async屬于異步注解,@Async放在方法上標(biāo)識該方法為異步方法,異步是指進(jìn)程不需要一直等待下去,而是繼續(xù)執(zhí)行下面的操作,不管其他進(jìn)程的狀態(tài),需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)多文件上傳功能

    Java實現(xiàn)多文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)多文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論