最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)ftp文件上傳下載解決慢中文亂碼多個(gè)文件下載等問(wèn)題

 更新時(shí)間:2016年10月19日 15:16:00   投稿:mrr  
這篇文章主要介紹了Java實(shí)現(xiàn)ftp文件上傳下載解決慢中文亂碼多個(gè)文件下載等問(wèn)題的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下

廢話不多說(shuō)了,直接給大家貼代碼了,具體代碼如下所示:

//文件上傳
public static boolean uploadToFTP(String url,int port,String username,String password,String path,String filename,InputStream input)
{
  boolean success=false;
  FTPClient ftp=new FTPClient();//org.apache.commons.net.ftp
  try{
    if(port>-1)
    {
      ftp.connect(url,port);  
    }else{
      ftp.connect(url);//ftp默認(rèn)的端口是21
    }
    //很多人寫的是用ftp.getReplyCode()給獲取連接的返回值,但是這樣會(huì)導(dǎo)致storeFileStream返回null
    if(ftp.login(username,password))
    {
      ftp.enterLocalActiveMode();
      ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
      //創(chuàng)建目錄,如果存在會(huì)返回失敗
      ftp.makeDirectory(path);
      //切換目錄
      ftp.changeWorkingDirectory(path);
      //上傳文件 
      //FTP協(xié)議規(guī)定文件編碼格式為ISO-8859-1
      filename=new String(filename.getBytes("GBK"),"ISO-8859-1");
      OutputStream out=ftp.storeFileStream(filename);
      byte[]byteArray=new byte[4096];
      int read=0;
      while((read=input.read(byteArray))!=-1)
      {
        out.write(byteArray,0,read);
      }
      out.close();
      ftp.logout();
      sucess=true;
    }  
  }
  catch(Exception e)
  {
    
  }
  finally{
     if(ftp.isConnected())
     {
       ftp.disConnecct(); 
     }
  }
}
//文件下載
public static boolean downloadFromFTP(String url,int port,String username,String password,String path,String localpath)
{
  boolean success=false;
  FTPClient ftp=new FTPClient();//org.apache.commons.net.ftp
  try{
    int reply;
    if(port>-1)
    {
      ftp.connect(url,port);  
    }else{
      ftp.connect(url);//ftp默認(rèn)的端口是21
    }
    //很多人寫的是用ftp.getReplyCode()給獲取連接的返回值,但是這樣會(huì)導(dǎo)致storeFileStream返回null
    ftp.login(username,password)
     
      ftp.enterLocalActiveMode();
      ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
      reply=ftp.getReplyCode();
      if(!FTPReply.isPositionCompletion(reply))
      {
        ftp.disconnect();
        return success;s
      } 
      //切換目錄 此處可以判斷,切換失敗就說(shuō)明ftp上面沒(méi)有這個(gè)路徑
      ftp.changeWorkingDirectory(path);
      //上傳文件 
      FTPFile[]fs=ftp.listFiles();
      OutputStream out=null;
      InputStream in=null;
      for(int i=0;i<fs.length;i++)
      {
        FTPFile ff=fs[i];
        String outFileName=ff.getName();
        //創(chuàng)建本地的文件時(shí)候要把編碼格式轉(zhuǎn)回來(lái)
        String localFileName=new String(ff.getName().getBytes("ISO-8859-"),"GBK");
        File localFile=new File(localpath+lcoalFileName);
        out=new FileOutputStream(localFile);
        in=ftp.retrieveFileStream(outFileName); 
        byte[]byteArray=new byte[4096];
        int read=0;
      while((read=in.read(byteArray))!=-1)
      {
        out.write(byteArray,0,read);
      }
      //這句很重要 要多次操作這個(gè)ftp的流的通道,要等他的每次命令完成
      ftp.completePendingCommand();
      out.flush();
      out.close();
      ftp.logout();
      sucess=true;
  }
  catch(Exception e)
  {
    
  }
  finally{
     if(ftp.isConnected())
     {
       ftp.disConnecct(); 
     }
  }
}

以上所述是小編給大家介紹的Java實(shí)現(xiàn)ftp文件上傳下載解決慢中文亂碼多個(gè)文件下載等問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Zuul 如何屏蔽服務(wù)和指定路徑

    Zuul 如何屏蔽服務(wù)和指定路徑

    這篇文章主要介紹了Zuul 如何屏蔽服務(wù)和指定路徑的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作

    java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作

    這篇文章主要為大家詳細(xì)介紹了java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • java類加載器和類反射使用示例

    java類加載器和類反射使用示例

    這篇文章主要介紹了java類加載器和類反射使用示例,需要的朋友可以參考下
    2014-03-03
  • Java泛型映射不同的值類型詳解及實(shí)例代碼

    Java泛型映射不同的值類型詳解及實(shí)例代碼

    這篇文章主要介紹了Java泛型映射不同的值類型詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 基于opencv+java實(shí)現(xiàn)簡(jiǎn)單圖形識(shí)別程序

    基于opencv+java實(shí)現(xiàn)簡(jiǎn)單圖形識(shí)別程序

    這篇文章主要給大家介紹了如何基于opencv+java實(shí)現(xiàn)簡(jiǎn)單圖形識(shí)別程序的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Java string.trim()究竟去掉了什么

    Java string.trim()究竟去掉了什么

    這篇文章主要介紹了Java string.trim()究竟去掉了什么,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 解決IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題

    解決IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題

    這篇文章主要介紹了IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java過(guò)濾器filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java過(guò)濾器filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java過(guò)濾器filter,通過(guò)過(guò)濾器,可以對(duì)來(lái)自客戶端的請(qǐng)求進(jìn)行攔截,進(jìn)行預(yù)處理或者對(duì)最終響應(yīng)給客戶端的數(shù)據(jù)進(jìn)行處理后再輸出
    2017-07-07
  • 源碼解析springbatch的job運(yùn)行機(jī)制

    源碼解析springbatch的job運(yùn)行機(jī)制

    這篇文章主要介紹了springbatch的job是如何運(yùn)行的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 在springboot中注入FilterRegistrationBean不生效的原因

    在springboot中注入FilterRegistrationBean不生效的原因

    這篇文章主要介紹了在springboot中注入FilterRegistrationBean不生效的原因及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

旌德县| 五台县| 永川市| 集贤县| 洪洞县| 资源县| 应用必备| 德安县| 南汇区| 英吉沙县| 启东市| 静宁县| 江源县| 遂宁市| 阿瓦提县| 荔浦县| 靖西县| 苍溪县| 邵东县| 利辛县| 剑川县| 恩施市| 泸定县| 秦皇岛市| 邳州市| 肇州县| 上蔡县| 新建县| 虞城县| 上林县| 襄樊市| 峨眉山市| 皋兰县| 台南市| 井研县| 会同县| 康定县| 枣阳市| 于都县| 吉安县| 黎川县|