摘要:寫在前面作為經(jīng)常使用電腦整理文件的童鞋,應(yīng)該都使用過(guò)從服務(wù)器上傳下載文件,那么今天就了解下如何通過(guò)程序操作服務(wù)的文件首先你要知道的,路徑,端口,有操作權(quán)限的賬號(hào)和密碼導(dǎo)入包這個(gè)包用來(lái)設(shè)置編碼,經(jīng)過(guò)測(cè)試,不加也可用工具類中主要方法登陸驗(yàn)證
寫在前面
作為經(jīng)常使用電腦整理文件的童鞋,應(yīng)該都使用過(guò)從ftp服務(wù)器上傳下載文件,那么今天就了解下如何通過(guò)java程序操作ftp服務(wù)的文件
首先你要知道ftp的ip,路徑,端口,有操作權(quán)限的賬號(hào)和密碼1 導(dǎo)入jar包
commons-net-3.6.jar
這個(gè)jar包用來(lái)設(shè)置編碼,經(jīng)過(guò)測(cè)試,不加也可用
2 工具類中主要方法 2.1 登陸ftp/** * 驗(yàn)證登錄 * @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; }
注意:獲取遠(yuǎn)程文件目錄,上傳和下載方法基于登陸方法2.2 獲取遠(yuǎn)程文件目錄
/** * 獲取ftp某一文件(路徑)下的文件名字,用于查看文件列表 * @param ip * @param port * @param name * @param pwd * @param remotedir 遠(yuǎn)程地址目錄 * @return */ public boolean getFilesName(String ip,int port, String name, String pwd, String remotedir) { try { if(!login(ip, port, name, pwd)){ return false; } //獲取ftp里面,指定文件夾 里面的文件名字,存入數(shù)組中 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 遠(yuǎn)程地址文件路徑 * @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(); } } /** * 上傳文件的第二種方法,優(yōu)化了傳輸速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠(yuǎn)程地址文件路徑 * @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 遠(yuǎn)程地址文件路徑 * @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(); } } /** * 下載文件的第二種方法,優(yōu)化了傳輸速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 遠(yuǎn)程地址文件路徑 * @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 源碼
當(dāng)然上面代碼只是重要的部分,如果有問(wèn)題可去github自行下載 charmsongo
如果有什么更好的方法歡迎留言
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72614.html
摘要:今天,就為開(kāi)發(fā)者介紹個(gè)方便的工具。對(duì)開(kāi)發(fā)者來(lái)說(shuō),是一個(gè)非常有用的工具,它提供了超過(guò)個(gè)有用的函數(shù)。該工具檢查輸入源代碼和報(bào)告任何違反給定的標(biāo)準(zhǔn)??蚣苁且粋€(gè)開(kāi)發(fā)的工具。它側(cè)重于安全性和性能,絕對(duì)是最安全的開(kāi)發(fā)框架之一。 PHP是為Web開(kāi)發(fā)設(shè)計(jì)的服務(wù)器腳本語(yǔ)言,但也是一種通用的編程語(yǔ)言。超過(guò)2.4億個(gè)索引域使用PHP,包括很多重要的網(wǎng)站,例如Facebook、Digg和WordPress。...
摘要:是一個(gè)可移植,隔離,快速且功能強(qiáng)大的通用開(kāi)發(fā)環(huán)境,適用于,,,,,。每每這樣都絕望地將項(xiàng)目放到推薦的標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境上面跑,殺雞也用牛刀著實(shí)不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:是一個(gè)可移植,隔離,快速且功能強(qiáng)大的通用開(kāi)發(fā)環(huán)境,適用于,,,,,。每每這樣都絕望地將項(xiàng)目放到推薦的標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境上面跑,殺雞也用牛刀著實(shí)不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問(wèn)題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁(yè)面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見(jiàn)的需求。 最常見(jiàn)的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
閱讀 3025·2021-10-27 14:16
閱讀 729·2021-10-13 09:39
閱讀 3776·2021-09-29 09:46
閱讀 2126·2019-08-30 15:54
閱讀 2629·2019-08-30 15:52
閱讀 3025·2019-08-30 15:44
閱讀 1134·2019-08-30 15:44
閱讀 530·2019-08-30 10:51