tinguo002

           

          java FTP Linux系統下 文件上傳下載

          http://www.aygfsteel.com/parable-myth/archive/2008/05/16/200879.html
          import java.io.File;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.OutputStream;

          import org.apache.commons.net.ftp.FTPClient;
          import org.apache.commons.net.ftp.FTPClientConfig;
          import org.apache.commons.net.ftp.FTPFile;

          public class DownFTPFile {

          private String hostname; 
          private String username;
          private String password;
          private String localBaseDir; 
          private String remoteBaseDir; 


          private static FTPClient ftpClient = new FTPClient(); 

          public static void main(String[] args) {
          String hostname 
          = "172.18.72.66";
          String username 
          = "sfdc3";
          String password 
          = "sfdcadmin";
          String localBaseDir 
          = "c:/temp/";
          String remoteBaseDir 
          = "ptsinstall/v3.20.06";

          DownFTPFile downFTPClient 
          = new DownFTPFile();
          downFTPClient.setHostname(hostname);
          downFTPClient.setUsername(username);
          downFTPClient.setPassword(password);
          downFTPClient.setLocalBaseDir(localBaseDir);
          downFTPClient.setRemoteBaseDir(remoteBaseDir);
          downFTPClient.startDown();
          }


          private void startDown() {
          try {
          ftpClient.connect(hostname);
          ftpClient.login(username, password);
          FTPClientConfig conf 
          = new FTPClientConfig( FTPClientConfig.SYST_UNIX);
          ftpClient.configure(conf);
          }
           catch (Exception e1) {
          e1.printStackTrace();
          }


          try {
          FTPFile[] files 
          = null;
          boolean changedir = ftpClient.changeWorkingDirectory(remoteBaseDir);
          if ( changedir ){
          files 
          = ftpClient.listFiles();
          for (int i = 0; i < files.length; i++{
          downloadFile(files[i], localBaseDir, remoteBaseDir);

          /**

          下載單個文件文件
          InputStream is = ftpClient.retrieveFileStream(remoteBaseDir);
             BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf8"));

             String str="";
             try {
              while((str=br.readLine())!=null){
               System.out.println(str);
              }
             } catch (Exception e) {       
              e.printStackTrace();
             }
          */
          }
          }

          }
           catch (Exception e) {
          System.out.println(e);
          }

          }


          private void downloadFile(FTPFile ftpFile, String relativeLocalPath,String relativeRemotePath) {
          if (ftpFile.isFile()) {//down file
          if (ftpFile.getName().indexOf("?"== -1{
          OutputStream outputStream 
          = null;
          try {
          outputStream 
          = new FileOutputStream(relativeLocalPath+ ftpFile.getName());
          ftpClient.retrieveFile(ftpFile.getName(), outputStream);
          outputStream.flush();
          outputStream.close();
          }
           catch (Exception e) {
          System.err.println( e );
          }
           finally {
          try {
          if (outputStream != null)
          outputStream.close();
          }
           catch (IOException e) {
          System.out.println(
          "ShowasaFile");
          }

          }

          }

          }
           else //deal dirctory
          String newlocalRelatePath = relativeLocalPath + ftpFile.getName();
          String newRemote 
          = new String(relativeRemotePath+ ftpFile.getName().toString());

          File fl 
          = new File(newlocalRelatePath);
          if (!fl.exists()) {
          fl.mkdirs();
          }

          try {
          newlocalRelatePath 
          = newlocalRelatePath + '/';
          newRemote 
          = newRemote + "/";
          String currentWorkDir 
          = ftpFile.getName().toString();
          //enter relative workdirectory
          boolean changedir = ftpClient.changeWorkingDirectory(currentWorkDir);
          if (changedir) {
          FTPFile[] files 
          = null;
          files 
          = ftpClient.listFiles();
          for (int i = 0; i < files.length; i++{
          downloadFile(files[i], newlocalRelatePath, newRemote);
          }

          }

          //return parent directory
          if (changedir)
          ftpClient.changeToParentDirectory();
          }
           catch (Exception e) {
          System.out.println(e);
          }

          }

          }



          public String getHostname() {
          return hostname;
          }



          public void setHostname(String hostname) {
          this.hostname = hostname;
          }



          public String getPassword() {
          return password;
          }



          public void setPassword(String password) {
          this.password = password;
          }



          public String getUsername() {
          return username;
          }



          public void setUsername(String username) {
          this.username = username;
          }



          public String getLocalBaseDir() {
          return localBaseDir;
          }



          public void setLocalBaseDir(String localBaseDir) {
          this.localBaseDir = localBaseDir;
          }



          public String getRemoteBaseDir() {
          return remoteBaseDir;
          }



          public void setRemoteBaseDir(String remoteBaseDir) {
          this.remoteBaseDir = remoteBaseDir;
          }

          }
           






          BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "utf8")); 

          歡迎大家訪問我的個人網站 萌萌的IT人

          posted on 2014-04-10 18:42 一堣而安 閱讀(759) 評論(0)  編輯  收藏 所屬分類: java

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁波市| 古交市| 大冶市| 连云港市| 兴山县| 安义县| 凯里市| 林州市| 桐梓县| 鄂温| 拜城县| 休宁县| 锡林浩特市| 静宁县| 军事| 武平县| 柘荣县| 溧水县| 上犹县| 灵宝市| 来安县| 通渭县| 万盛区| 平顶山市| 金湖县| 赞皇县| 呼和浩特市| 寿光市| 措美县| 奉新县| 丹巴县| 于田县| 福建省| 金塔县| 东乌| 平乡县| 潞城市| 广宁县| 白水县| 湟源县| 若尔盖县|