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

首頁 > 網(wǎng)站 > Apache > 正文

Java利用apache ftp工具實(shí)現(xiàn)文件上傳下載和刪除功能

2024-08-27 18:25:11
字體:
供稿:網(wǎng)友

利用apache ftp工具實(shí)現(xiàn)文件的上傳下載和刪除,具體如下

1、下載相應(yīng)的jar包

     commons-net-1.4.1.jar

2、實(shí)現(xiàn)代碼如下:

public class FtpUtils {     //ftp服務(wù)器地址     public String hostname = "192.168.1.249";     //ftp服務(wù)器端口號(hào)默認(rèn)為21     public Integer port = 21 ;     //ftp登錄賬號(hào)     public String username = "root";     //ftp登錄密碼     public String password = "123";          public FTPClient ftpClient = null;          /**      * 初始化ftp服務(wù)器      */     public void initFtpClient() {       ftpClient = new FTPClient();       ftpClient.setControlEncoding("utf-8");       try {         System.out.println("connecting...ftp服務(wù)器:"+this.hostname+":"+this.port);          ftpClient.connect(hostname, port); //連接ftp服務(wù)器         ftpClient.login(username, password); //登錄ftp服務(wù)器         int replyCode = ftpClient.getReplyCode(); //是否成功登錄服務(wù)器         if(!FTPReply.isPositiveCompletion(replyCode)){           System.out.println("connect failed...ftp服務(wù)器:"+this.hostname+":"+this.port);          }         System.out.println("connect successfu...ftp服務(wù)器:"+this.hostname+":"+this.port);        }catch (MalformedURLException e) {          e.printStackTrace();        }catch (IOException e) {          e.printStackTrace();        }      }      /**     * 上傳文件     * @param pathname ftp服務(wù)保存地址     * @param fileName 上傳到ftp的文件名     * @param originfilename 待上傳文件的名稱(絕對(duì)地址) *     * @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服務(wù)保存地址      * @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("進(jìn)入文件夾" + directory + " 成功!");            } else {             System.out.println("進(jìn)入文件夾" + directory + " 失??!開始創(chuàng)建文件夾");           }         } catch (IOException ioe) {           ioe.printStackTrace();         }         return flag;       }      //創(chuàng)建多層目錄文件,如果有ftp服務(wù)器已存在該文件,則不創(chuàng)建,如果無,則創(chuàng)建     public boolean CreateDirecroty(String remote) throws IOException {       boolean success = true;       String directory = remote + "/";       // 如果遠(yuǎn)程目錄不存在,則遞歸創(chuàng)建遠(yuǎn)程服務(wù)器目錄       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("創(chuàng)建目錄[" + subDirectory + "]失敗");               changeWorkingDirectory(subDirectory);             }           } else {             changeWorkingDirectory(subDirectory);           }            paths = paths + "/" + subDirectory;           start = end + 1;           end = directory.indexOf("/", start);           // 檢查所有目錄是否創(chuàng)建完畢           if (end <= start) {             break;           }         }       }       return success;     }     //判斷ftp服務(wù)器文件是否存在       public boolean existFile(String path) throws IOException {         boolean flag = false;         FTPFile[] ftpFileArr = ftpClient.listFiles(path);         if (ftpFileArr.length > 0) {           flag = true;         }         return flag;       }     //創(chuàng)建目錄     public boolean makeDirectory(String dir) {       boolean flag = true;       try {         flag = ftpClient.makeDirectory(dir);         if (flag) {           System.out.println("創(chuàng)建文件夾" + dir + " 成功!");          } else {           System.out.println("創(chuàng)建文件夾" + dir + " 失敗!");         }       } catch (Exception e) {         e.printStackTrace();       }       return flag;     }          /** * 下載文件 *     * @param pathname FTP服務(wù)器文件目錄 *     * @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服務(wù)器保存目錄 *     * @param filename 要?jiǎng)h除的文件名稱 *     * @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");     } } 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗田县| 延安市| 铁岭县| 柘城县| 鄂州市| 铜梁县| 阳山县| 兴业县| 花莲市| 开平市| 子长县| 盱眙县| 忻城县| 鹤岗市| 永州市| 巫溪县| 遵义县| 元朗区| 平舆县| 凤翔县| 客服| 连平县| 隆子县| 延川县| 屏山县| 施甸县| 比如县| 普定县| 邵阳县| 仙游县| 黄梅县| 孟连| 青田县| 富蕴县| 建阳市| 连平县| 舒城县| 临泉县| 顺义区| 黄陵县| 肥东县|