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

首頁 > 編程 > Java > 正文

JAVA中使用FTPClient實現文件上傳下載實例代碼

2019-11-26 14:12:46
字體:
來源:轉載
供稿:網友

在java程序開發中,ftp用的比較多,經常打交道,比如說向FTP服務器上傳文件、下載文件,本文給大家介紹如何利用jakarta commons中的FTPClient(在commons-net包中)實現上傳下載文件。

一、上傳文件

原理就不介紹了,大家直接看代碼吧

/** * Description: 向FTP服務器上傳文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創建 * @param url FTP服務器hostname * @param port FTP服務器端口 * @param username FTP登錄賬號 * @param password FTP登錄密碼 * @param path FTP服務器保存目錄 * @param filename 上傳到FTP服務器上的文件名 * @param input 輸入流 * @return 成功返回true,否則返回false */ publicstaticboolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(url, port);//連接FTP服務器 //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器 ftp.login(username, password);//登錄 reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } ftp.changeWorkingDirectory(path); ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; }<pre></pre> /*** Description: 向FTP服務器上傳文件* @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創建* @param url FTP服務器hostname* @param port FTP服務器端口* @param username FTP登錄賬號* @param password FTP登錄密碼* @param path FTP服務器保存目錄* @param filename 上傳到FTP服務器上的文件名* @param input 輸入流* @return 成功返回true,否則返回false*/public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(url, port);//連接FTP服務器//如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器ftp.login(username, password);//登錄reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(path);ftp.storeFile(filename, input); input.close();ftp.logout();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return success;} 

下面我們寫兩個小例子:

1.將本地文件上傳到FTP服務器上,代碼如下:

@Test publicvoid testUpLoadFromDisk(){ try { FileInputStream in=new FileInputStream(new File("D:/test.txt")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); System.out.println(flag); } catch (FileNotFoundException e) { e.printStackTrace(); } }<pre></pre> @Testpublic void testUpLoadFromDisk(){try {FileInputStream in=new FileInputStream(new File("D:/test.txt"));boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in);System.out.println(flag);} catch (FileNotFoundException e) {e.printStackTrace();}} 

2.在FTP服務器上生成一個文件,并將一個字符串寫入到該文件中

@Test publicvoid testUpLoadFromString(){ try { InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); System.out.println(flag); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }<pre></pre> @Testpublic void testUpLoadFromString(){try {InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8"));boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input);System.out.println(flag);} catch (UnsupportedEncodingException e) {e.printStackTrace();}} 

二、下載文件

從FTP服務器下載文件的代碼也很簡單,參考如下:

/** * Description: 從FTP服務器下載文件 * @Version. Jul , :: PM by 崔紅保(cuihongbao@d-heaven.com)創建 * @param url FTP服務器hostname * @param port FTP服務器端口 * @param username FTP登錄賬號 * @param password FTP登錄密碼 * @param remotePath FTP服務器上的相對路徑 * @param fileName 要下載的文件名 * @param localPath 下載后保存到本地的路徑 * @return */ publicstaticboolean downFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) { boolean success = false; FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(url, port); //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器 ftp.login(username, password);//登錄 reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return success; } ftp.changeWorkingDirectory(remotePath);//轉移到FTP服務器目錄 FTPFile[] fs = ftp.listFiles(); for(FTPFile ff:fs){ if(ff.getName().equals(fileName)){ File localFile = new File(localPath+"/"+ff.getName()); OutputStream is = new FileOutputStream(localFile); ftp.retrieveFile(ff.getName(), is); is.close(); } } ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; }<pre></pre> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信阳市| 准格尔旗| 通州区| 阜阳市| 嘉义县| 中牟县| 六安市| 醴陵市| 阿拉善左旗| 毕节市| 胶州市| 德州市| 苏州市| 上杭县| 搜索| 清苑县| 喀喇| 金昌市| 开平市| 射阳县| 舞钢市| 当涂县| 乌鲁木齐县| 策勒县| 汝州市| 三台县| 房产| 杨浦区| 永嘉县| 中山市| 涪陵区| 泉州市| 高密市| 商南县| 蓬安县| 正镶白旗| 绥江县| 南皮县| 聊城市| 义马市| 庐江县|