俊星的BLOG

          Ftp客戶端簡單編程

          基于APACHE COMMONS中的NET包提供的FTP客戶端類庫實(shí)現(xiàn),下面是具體的代碼:

          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();
                  
          // 設(shè)置一個監(jiān)聽
                  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 俊星 閱讀(1026) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桃江县| 临城县| 嵊州市| 商水县| 遂昌县| 富川| 海盐县| 永丰县| 忻城县| 临泽县| 民乐县| 呈贡县| 广宁县| 安仁县| 太湖县| 七台河市| 突泉县| 吉木乃县| 广宁县| 黑山县| 百色市| 博爱县| 凌源市| 翁源县| 甘泉县| 仙居县| 兴文县| 库车县| 汪清县| 九龙坡区| 曲阳县| 友谊县| 张家港市| 利津县| 蒙山县| 定陶县| 昌乐县| 兴国县| 乳山市| 全南县| 东宁县|