亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: JAVA中使用FTPClient上傳下載 [打印本頁]

作者: d0e1f    時間: 2015-07-10 13:27
標(biāo)題: JAVA中使用FTPClient上傳下載
在JAVA程序中,經(jīng)常需要和FTP打交道,比如向FTP服務(wù)器上傳文件、下載文件,本文簡單介紹如何利用jakarta commons中的FTPClient(在commons-net包中)實現(xiàn)上傳下載文件。

一、上傳文件

         原理就不介紹了,大家直接看代碼吧
  1. /**
  2.      * Description: 向FTP服務(wù)器上傳文件
  3.      * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創(chuàng)建
  4.      * @param url FTP服務(wù)器hostname
  5.      * @param port FTP服務(wù)器端口
  6.      * @param username FTP登錄賬號
  7.      * @param password FTP登錄密碼
  8.      * @param path FTP服務(wù)器保存目錄
  9.      * @param filename 上傳到FTP服務(wù)器上的文件名
  10.      * @param input 輸入流
  11.      * @return 成功返回true,否則返回false
  12.      */
  13.     public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {
  14.         boolean success = false;
  15.         FTPClient ftp = new FTPClient();
  16.         try {
  17.             int reply;
  18.             ftp.connect(url, port);//連接FTP服務(wù)器
  19.             //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務(wù)器
  20.             ftp.login(username, password);//登錄
  21.             reply = ftp.getReplyCode();
  22.             if (!FTPReply.isPositiveCompletion(reply)) {
  23.                 ftp.disconnect();
  24.                 return success;
  25.             }
  26.             ftp.changeWorkingDirectory(path);
  27.             ftp.storeFile(filename, input);            
  28.             
  29.             input.close();
  30.             ftp.logout();
  31.             success = true;
  32.         } catch (IOException e) {
  33.             e.printStackTrace();
  34.         } finally {
  35.             if (ftp.isConnected()) {
  36.                 try {
  37.                     ftp.disconnect();
  38.                 } catch (IOException ioe) {
  39.                 }
  40.             }
  41.         }
  42.         return success;
  43.     }<pre></pre>
復(fù)制代碼
下面我們寫兩個小例子:

1.將本地文件上傳到FTP服務(wù)器上,代碼如下:
  1. @Test
  2.     public void testUpLoadFromDisk(){
  3.         try {
  4.             FileInputStream in=new FileInputStream(new File("D:/test.txt"));
  5.             boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in);
  6.             System.out.println(flag);
  7.         } catch (FileNotFoundException e) {
  8.             e.printStackTrace();
  9.         }
  10.     }<pre></pre>
復(fù)制代碼
2.在FTP服務(wù)器上生成一個文件,并將一個字符串寫入到該文件中
  1. @Test
  2.     public void testUpLoadFromString(){
  3.         try {
  4.             InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8"));
  5.             boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input);
  6.             System.out.println(flag);
  7.         } catch (UnsupportedEncodingException e) {
  8.             e.printStackTrace();
  9.         }
  10.     }<pre></pre>
復(fù)制代碼
二、下載文件

       從FTP服務(wù)器下載文件的代碼也很簡單,參考如下:
  1. /**
  2.      * Description: 從FTP服務(wù)器下載文件
  3.      * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔紅保(cuihongbao@d-heaven.com)創(chuàng)建
  4.      * @param url FTP服務(wù)器hostname
  5.      * @param port FTP服務(wù)器端口
  6.      * @param username FTP登錄賬號
  7.      * @param password FTP登錄密碼
  8.      * @param remotePath FTP服務(wù)器上的相對路徑
  9.      * @param fileName 要下載的文件名
  10.      * @param localPath 下載后保存到本地的路徑
  11.      * @return
  12.      */
  13.     public static boolean downFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) {
  14.         boolean success = false;
  15.         FTPClient ftp = new FTPClient();
  16.         try {
  17.             int reply;
  18.             ftp.connect(url, port);
  19.             //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務(wù)器
  20.             ftp.login(username, password);//登錄
  21.             reply = ftp.getReplyCode();
  22.             if (!FTPReply.isPositiveCompletion(reply)) {
  23.                 ftp.disconnect();
  24.                 return success;
  25.             }
  26.             ftp.changeWorkingDirectory(remotePath);//轉(zhuǎn)移到FTP服務(wù)器目錄
  27.             FTPFile[] fs = ftp.listFiles();
  28.             for(FTPFile ff:fs){
  29.                 if(ff.getName().equals(fileName)){
  30.                     File localFile = new File(localPath+"/"+ff.getName());
  31.                     
  32.                     OutputStream is = new FileOutputStream(localFile);
  33.                     ftp.retrieveFile(ff.getName(), is);
  34.                     is.close();
  35.                 }
  36.             }
  37.             
  38.             ftp.logout();
  39.             success = true;
  40.         } catch (IOException e) {
  41.             e.printStackTrace();
  42.         } finally {
  43.             if (ftp.isConnected()) {
  44.                 try {
  45.                     ftp.disconnect();
  46.                 } catch (IOException ioe) {
  47.                 }
  48.             }
  49.         }
  50.         return success;
  51.     }
復(fù)制代碼
轉(zhuǎn)載出處:http://www.cnblogs.com/liuyitian/p/4635302.html




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2