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

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

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

實(shí)例如下所示:

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è)置超時(shí)間為3秒 
    conn.setConnectTimeout(3*1000); 
    //防止屏蔽程序抓取而返回403錯(cuò)誤 
    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下載文件并輸出的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Java BigDecimal使用方法詳解

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

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

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

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

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

最新評(píng)論