俊星的BLOG

          Ftp客戶端簡單編程

          基于APACHE COMMONS中的NET包提供的FTP客戶端類庫實現,下面是具體的代碼:

          package test;

          import java.io.FileInputStream;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.OutputStream;
          import java.io.PrintWriter;

          import org.apache.commons.net.PrintCommandListener;
          import org.apache.commons.net.ftp.FTP;
          import org.apache.commons.net.ftp.FTPClient;
          import org.apache.commons.net.ftp.FTPFile;
          import org.apache.commons.net.ftp.FTPReply;

          public class ClientTest {
              
          public static void main(String[] args) {
                  ClientTest main 
          = new ClientTest();
                  FTPClient ftp 
          = new FTPClient();
                  
          // 設置一個監聽
                  ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
                  
          try {
                      ftp.connect(
          "localhost"2121);
                      
          int reply = ftp.getReplyCode();
                      
          if (!FTPReply.isPositiveCompletion(reply)) {
                          ftp.disconnect();
                          System.out.println(
          "FTP server refused connection");
                      }

                      
          // 登錄
                      ftp.login("admin""admin");
                      main.uploadFile(ftp);
                      main.listFiles(ftp);
                      main.downloadFile(ftp);
                      main.deleteFile(ftp);
                      main.listFiles(ftp);
                      
          // 退出
                      ftp.logout();
                  }
           catch (IOException e) {
                      e.printStackTrace();
                      
          if (ftp.isConnected()) {
                          
          try {
                              ftp.disconnect();
                          }
           catch (Exception e2) {
                          }

                      }

                  }

              }

              
              
          // 列舉文件
              private void listFiles(FTPClient ftp) throws IOException {
                  System.out.println(
          "------------START------------");
                  
          for (FTPFile f : ftp.listFiles()) {
                      System.out.println(f.getName() 
          + " " + f.getSize());
                  }

                  System.out.println(
          "------------END------------");
              }


              
          // 上傳文件
              private void uploadFile(FTPClient ftp) throws IOException {
                  ftp.setFileType(FTP.BINARY_FILE_TYPE);
                  ftp.enterLocalPassiveMode();
                  InputStream input 
          = new FileInputStream("res/conf/dushu.jpg");
                  ftp.storeFile(
          "dushu.jpg", input);
                  input.close();
              }


              
          // 下載文件
              private void downloadFile(FTPClient ftp) throws IOException {
                  ftp.setFileType(FTP.BINARY_FILE_TYPE);
                  ftp.enterLocalPassiveMode();
                  OutputStream output 
          = new FileOutputStream("res/conf/dushu_down.jpg");
                  ftp.retrieveFile(
          "dushu.jpg", output);
                  output.close();
              }


              
          // 刪除文件
              private void deleteFile(FTPClient ftp) throws IOException {
                  ftp.deleteFile(
          "dushu.jpg");
              }

          }


          輸出如下:
          220 Service ready for new user.
          USER admin
          331 User name okay, need password for admin.
          PASS admin
          230 User logged in, proceed.
          TYPE I
          200 Command TYPE okay.
          PASV
          227 Entering Passive Mode (127,0,0,1,13,12)
          STOR dushu.jpg
          150 File status okay; about to open data connection.
          226 Transfer complete.
          ------------START------------
          SYST
          215 UNIX Type: Apache FtpServer
          PASV
          227 Entering Passive Mode (127,0,0,1,13,14)
          LIST
          150 File status okay; about to open data connection.
          226 Closing data connection.
          dushu.jpg 
          83694
          ------------END------------
          TYPE I
          200 Command TYPE okay.
          PASV
          227 Entering Passive Mode (127,0,0,1,13,16)
          RETR dushu.jpg
          150 File status okay; about to open data connection.
          226 Transfer complete.
          DELE dushu.jpg
          250 Requested file action okay, deleted /dushu.jpg.
          ------------START------------
          PASV
          227 Entering Passive Mode (127,0,0,1,13,18)
          LIST
          150 File status okay; about to open data connection.
          226 Closing data connection.
          ------------END------------
          QUIT
          221 Goodbye.

          最后,提供一張自己拍的讀書圖:

          posted on 2010-10-12 15:37 俊星 閱讀(1028) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 济南市| 会东县| 普格县| 南昌县| 兴国县| 乌什县| 明光市| 宣恩县| 滕州市| 芦山县| 铁力市| 宜春市| 海丰县| 蓬溪县| 房产| 克山县| 平湖市| 宜春市| 双辽市| 呼玛县| 曲麻莱县| 大港区| 彩票| 日土县| 商水县| 长子县| 新疆| 星子县| 桃园市| 黄平县| 玉环县| 日喀则市| 霍邱县| 东源县| 延庆县| 象山县| 小金县| 柞水县| 遵化市| 陈巴尔虎旗| 合水县|