国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java利用apache ftp工具實現文件上傳下載和刪除功能

2024-07-14 08:41:12
字體:
來源:轉載
供稿:網友

利用apache ftp工具實現文件的上傳下載和刪除,具體如下

1、下載相應的jar包

     commons-net-1.4.1.jar

2、實現代碼如下:

public class FtpUtils {     //ftp服務器地址     public String hostname = "192.168.1.249";     //ftp服務器端口號默認為21     public Integer port = 21 ;     //ftp登錄賬號     public String username = "root";     //ftp登錄密碼     public String password = "123";          public FTPClient ftpClient = null;          /**      * 初始化ftp服務器      */     public void initFtpClient() {       ftpClient = new FTPClient();       ftpClient.setControlEncoding("utf-8");       try {         System.out.println("connecting...ftp服務器:"+this.hostname+":"+this.port);          ftpClient.connect(hostname, port); //連接ftp服務器         ftpClient.login(username, password); //登錄ftp服務器         int replyCode = ftpClient.getReplyCode(); //是否成功登錄服務器         if(!FTPReply.isPositiveCompletion(replyCode)){           System.out.println("connect failed...ftp服務器:"+this.hostname+":"+this.port);          }         System.out.println("connect successfu...ftp服務器:"+this.hostname+":"+this.port);        }catch (MalformedURLException e) {          e.printStackTrace();        }catch (IOException e) {          e.printStackTrace();        }      }      /**     * 上傳文件     * @param pathname ftp服務保存地址     * @param fileName 上傳到ftp的文件名     * @param originfilename 待上傳文件的名稱(絕對地址) *     * @return     */     public boolean uploadFile( String pathname, String fileName,String originfilename){       boolean flag = false;       InputStream inputStream = null;       try{         System.out.println("開始上傳文件");         inputStream = new FileInputStream(new File(originfilename));         initFtpClient();         ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);         CreateDirecroty(pathname);         ftpClient.makeDirectory(pathname);         ftpClient.changeWorkingDirectory(pathname);         ftpClient.storeFile(fileName, inputStream);         inputStream.close();         ftpClient.logout();         flag = true;         System.out.println("上傳文件成功");       }catch (Exception e) {         System.out.println("上傳文件失敗");         e.printStackTrace();       }finally{         if(ftpClient.isConnected()){            try{             ftpClient.disconnect();           }catch(IOException e){             e.printStackTrace();           }         }          if(null != inputStream){           try {             inputStream.close();           } catch (IOException e) {             e.printStackTrace();           }          }        }       return true;     }     /**      * 上傳文件      * @param pathname ftp服務保存地址      * @param fileName 上傳到ftp的文件名      * @param inputStream 輸入文件流      * @return      */     public boolean uploadFile( String pathname, String fileName,InputStream inputStream){       boolean flag = false;       try{         System.out.println("開始上傳文件");         initFtpClient();         ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);         CreateDirecroty(pathname);         ftpClient.makeDirectory(pathname);         ftpClient.changeWorkingDirectory(pathname);         ftpClient.storeFile(fileName, inputStream);         inputStream.close();         ftpClient.logout();         flag = true;         System.out.println("上傳文件成功");       }catch (Exception e) {         System.out.println("上傳文件失敗");         e.printStackTrace();       }finally{         if(ftpClient.isConnected()){            try{             ftpClient.disconnect();           }catch(IOException e){             e.printStackTrace();           }         }          if(null != inputStream){           try {             inputStream.close();           } catch (IOException e) {             e.printStackTrace();           }          }        }       return true;     }     //改變目錄路徑      public boolean changeWorkingDirectory(String directory) {         boolean flag = true;         try {           flag = ftpClient.changeWorkingDirectory(directory);           if (flag) {            System.out.println("進入文件夾" + directory + " 成功!");            } else {             System.out.println("進入文件夾" + directory + " 失?。¢_始創建文件夾");           }         } catch (IOException ioe) {           ioe.printStackTrace();         }         return flag;       }      //創建多層目錄文件,如果有ftp服務器已存在該文件,則不創建,如果無,則創建     public boolean CreateDirecroty(String remote) throws IOException {       boolean success = true;       String directory = remote + "/";       // 如果遠程目錄不存在,則遞歸創建遠程服務器目錄       if (!directory.equalsIgnoreCase("/") && !changeWorkingDirectory(new String(directory))) {         int start = 0;         int end = 0;         if (directory.startsWith("/")) {           start = 1;         } else {           start = 0;         }         end = directory.indexOf("/", start);         String path = "";         String paths = "";         while (true) {           String subDirectory = new String(remote.substring(start, end).getBytes("GBK"), "iso-8859-1");           path = path + "/" + subDirectory;           if (!existFile(path)) {             if (makeDirectory(subDirectory)) {               changeWorkingDirectory(subDirectory);             } else {               System.out.println("創建目錄[" + subDirectory + "]失敗");               changeWorkingDirectory(subDirectory);             }           } else {             changeWorkingDirectory(subDirectory);           }            paths = paths + "/" + subDirectory;           start = end + 1;           end = directory.indexOf("/", start);           // 檢查所有目錄是否創建完畢           if (end <= start) {             break;           }         }       }       return success;     }     //判斷ftp服務器文件是否存在       public boolean existFile(String path) throws IOException {         boolean flag = false;         FTPFile[] ftpFileArr = ftpClient.listFiles(path);         if (ftpFileArr.length > 0) {           flag = true;         }         return flag;       }     //創建目錄     public boolean makeDirectory(String dir) {       boolean flag = true;       try {         flag = ftpClient.makeDirectory(dir);         if (flag) {           System.out.println("創建文件夾" + dir + " 成功!");          } else {           System.out.println("創建文件夾" + dir + " 失??!");         }       } catch (Exception e) {         e.printStackTrace();       }       return flag;     }          /** * 下載文件 *     * @param pathname FTP服務器文件目錄 *     * @param filename 文件名稱 *     * @param localpath 下載后的文件路徑 *     * @return */     public boolean downloadFile(String pathname, String filename, String localpath){        boolean flag = false;        OutputStream os=null;       try {          System.out.println("開始下載文件");         initFtpClient();         //切換FTP目錄          ftpClient.changeWorkingDirectory(pathname);          FTPFile[] ftpFiles = ftpClient.listFiles();          for(FTPFile file : ftpFiles){            if(filename.equalsIgnoreCase(file.getName())){              File localFile = new File(localpath + "/" + file.getName());              os = new FileOutputStream(localFile);              ftpClient.retrieveFile(file.getName(), os);              os.close();            }          }          ftpClient.logout();          flag = true;          System.out.println("下載文件成功");       } catch (Exception e) {          System.out.println("下載文件失敗");         e.printStackTrace();        } finally{          if(ftpClient.isConnected()){            try{             ftpClient.disconnect();           }catch(IOException e){             e.printStackTrace();           }         }          if(null != os){           try {             os.close();           } catch (IOException e) {             e.printStackTrace();           }          }        }        return flag;      }          /** * 刪除文件 *     * @param pathname FTP服務器保存目錄 *     * @param filename 要刪除的文件名稱 *     * @return */      public boolean deleteFile(String pathname, String filename){        boolean flag = false;        try {          System.out.println("開始刪除文件");         initFtpClient();         //切換FTP目錄          ftpClient.changeWorkingDirectory(pathname);          ftpClient.dele(filename);          ftpClient.logout();         flag = true;          System.out.println("刪除文件成功");       } catch (Exception e) {          System.out.println("刪除文件失敗");         e.printStackTrace();        } finally {         if(ftpClient.isConnected()){            try{             ftpClient.disconnect();           }catch(IOException e){             e.printStackTrace();           }         }        }       return flag;      }          public static void main(String[] args) {       FtpUtils ftp =new FtpUtils();        //ftp.uploadFile("ftpFile/data", "123.docx", "E://123.docx");       //ftp.downloadFile("ftpFile/data", "123.docx", "F://");       ftp.deleteFile("ftpFile/data", "123.docx");       System.out.println("ok");     } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 神池县| 大洼县| 万宁市| 黄大仙区| 界首市| 昌图县| 苏尼特右旗| 子洲县| 南丰县| 全南县| 武穴市| 马鞍山市| 濮阳市| 三门县| 永州市| 成武县| 湘潭市| 台南市| 潍坊市| 公主岭市| 琼海市| 乡宁县| 芮城县| 甘肃省| 东丰县| 眉山市| 沙河市| 土默特左旗| 宜川县| 黔南| 天镇县| 沭阳县| 治县。| 桓台县| 印江| 雅安市| 罗源县| 英德市| 公主岭市| 登封市|