摘要:寫在前面作為經常使用電腦整理文件的童鞋,應該都使用過從服務器上傳下載文件,那么今天就了解下如何通過程序操作服務的文件首先你要知道的,路徑,端口,有操作權限的賬號和密碼導入包這個包用來設置編碼,經過測試,不加也可用工具類中主要方法登陸驗證
寫在前面
作為經常使用電腦整理文件的童鞋,應該都使用過從ftp服務器上傳下載文件,那么今天就了解下如何通過java程序操作ftp服務的文件
首先你要知道ftp的ip,路徑,端口,有操作權限的賬號和密碼1 導入jar包
commons-net-3.6.jar
這個jar包用來設置編碼,經過測試,不加也可用
2 工具類中主要方法 2.1 登陸ftp/** * 驗證登錄 * @param ip * @param port * @param name * @param pwd * @return */ public boolean login(String ip,int port, String name, String pwd) { try { ftp = new FTPClient(); ftp.connect(ip, port); System.out.println(ftp.login(name, pwd)); if(!ftp.login(name, pwd)){ return false; } ftp.setCharset(Charset.forName("UTF-8")); ftp.setControlEncoding("UTF-8"); } catch (IOException e) { e.printStackTrace(); return false; } return true; }
注意:獲取遠程文件目錄,上傳和下載方法基于登陸方法2.2 獲取遠程文件目錄
/** * 獲取ftp某一文件(路徑)下的文件名字,用于查看文件列表 * @param ip * @param port * @param name * @param pwd * @param remotedir 遠程地址目錄 * @return */ public boolean getFilesName(String ip,int port, String name, String pwd, String remotedir) { try { if(!login(ip, port, name, pwd)){ return false; } //獲取ftp里面,指定文件夾 里面的文件名字,存入數組中 FTPFile[] files = ftp.listFiles(remotedir); //打印出ftp里面,指定文件夾 里面的文件名字 for (int i = 0; i < files.length; i++) { System.out.println(files[i].getName()); } } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } return true; }2.3 上傳文件
/** * 上傳文件 方法一 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠程地址文件路徑 * @param localpath 本地文件路徑 * @return */ public boolean putFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } //將本地的 localpath 文件上傳到ftp的根目錄文件夾下面,并重命名為 remotepath中的名字 return ftp.storeFile(remotepath, new FileInputStream(new File(localpath))); } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } } /** * 上傳文件的第二種方法,優化了傳輸速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠程地址文件路徑 * @param localpath 本地文件路徑 * @return */ public boolean putFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } os = ftp.storeFileStream(remotepath); fis = new FileInputStream(new File(localpath)); byte[] b = new byte[1024]; int len = 0; while ((len = fis.read(b)) != -1) { os.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); return false; }finally { this.close(); } return true; }2.4 下載文件
/** * 下載文件 方法一 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠程地址文件路徑 * @param localpath 本地文件路徑 * @return */ public boolean getFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } //將ftp資源中 remotepath 文件下載到本地目錄文件夾下面,并重命名為 localpath 中的名字 return ftp.retrieveFile(remotepath, new FileOutputStream(new File(localpath))); } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } } /** * 下載文件的第二種方法,優化了傳輸速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠程地址文件路徑 * @param localpath 本地文件路徑 * @return */ public boolean getFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } is = ftp.retrieveFileStream(remotepath); fos = new FileOutputStream(new File(localpath)); byte[] b = new byte[1024]; int len = 0; while ((len = is.read(b)) != -1) { fos.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); return false; }finally { this.close(); } return true; }3 源碼
當然上面代碼只是重要的部分,如果有問題可去github自行下載 charmsongo
如果有什么更好的方法歡迎留言
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72614.html
摘要:今天,就為開發者介紹個方便的工具。對開發者來說,是一個非常有用的工具,它提供了超過個有用的函數。該工具檢查輸入源代碼和報告任何違反給定的標準。框架是一個開發的工具。它側重于安全性和性能,絕對是最安全的開發框架之一。 PHP是為Web開發設計的服務器腳本語言,但也是一種通用的編程語言。超過2.4億個索引域使用PHP,包括很多重要的網站,例如Facebook、Digg和WordPress。...
摘要:是一個可移植,隔離,快速且功能強大的通用開發環境,適用于,,,,,。每每這樣都絕望地將項目放到推薦的標準開發環境上面跑,殺雞也用牛刀著實不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:是一個可移植,隔離,快速且功能強大的通用開發環境,適用于,,,,,。每每這樣都絕望地將項目放到推薦的標準開發環境上面跑,殺雞也用牛刀著實不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:消費之后,多線程處理文件導出,生成文件后上傳到等文件服務器。前端直接查詢并且展現對應的任務執行列表,去等文件服務器下載文件即可。這客戶體驗不友好,而且網絡傳輸,系統占用多種問題。拓展閱讀導出最佳實踐框架 產品需求 產品經理需要導出一個頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步導出一個 exc...
閱讀 2973·2021-10-27 14:16
閱讀 695·2021-10-13 09:39
閱讀 3669·2021-09-29 09:46
閱讀 2090·2019-08-30 15:54
閱讀 2597·2019-08-30 15:52
閱讀 2994·2019-08-30 15:44
閱讀 1103·2019-08-30 15:44
閱讀 497·2019-08-30 10:51