国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java使用FTPClient類讀寫FTP

Java使用FTPClient類讀寫FTP

2020-09-17 15:44kardelpeng Java教程

這篇文章主要為大家詳細介紹了Java使用FTPClient類讀寫FTP的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java使用FTPClient類讀寫FTP的具體代碼,供大家參考,具體內容如下

1.首先先導入相關jar包

Java使用FTPClient類讀寫FTP

2.創建一個連接FTP的工具類FTPUtil.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.metarnet.ftp.util;
 
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;
import java.util.Properties;
 
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;
 
public class FTPUtil {
  private static Logger logger = Logger.getLogger(FTPUtil.class);
 
   
   
  /**
   * 獲取FTPClient對象
   * @param ftpHost FTP主機服務器
   * @param ftpPassword FTP 登錄密碼
   * @param ftpUserName FTP登錄用戶名
   * @param ftpPort FTP端口 默認為21
   * @return
   */
  public static FTPClient getFTPClient(String ftpHost, String ftpPassword,
      String ftpUserName, int ftpPort) {
    FTPClient ftpClient = null;
    try {
      ftpClient = new FTPClient();
      ftpClient.connect(ftpHost, ftpPort);// 連接FTP服務器
      ftpClient.login(ftpUserName, ftpPassword);// 登陸FTP服務器
      if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
        logger.info("未連接到FTP,用戶名或密碼錯誤。");
        ftpClient.disconnect();
      } else {
        logger.info("FTP連接成功。");
      }
    } catch (SocketException e) {
      e.printStackTrace();
      logger.info("FTP的IP地址可能錯誤,請正確配置。");
    } catch (IOException e) {
      e.printStackTrace();
      logger.info("FTP的端口錯誤,請正確配置。");
    }
    return ftpClient;
  }
}

3.編寫一個讀取FTP上文件的類ReadFTPFile.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.metarnet.ftp.read;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.SocketException;
 
import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;
 
import com.metarnet.ftp.util.FTPUtil;
 
public class ReadFTPFile {
  private Logger logger = Logger.getLogger(ReadFTPFile.class);
 
  /**
   * 去 服務器的FTP路徑下上讀取文件
   *
   * @param ftpUserName
   * @param ftpPassword
   * @param ftpPath
   * @param FTPServer
   * @return
   */
  public String readConfigFileForFTP(String ftpUserName, String ftpPassword,
      String ftpPath, String ftpHost, int ftpPort, String fileName) {
    StringBuffer resultBuffer = new StringBuffer();
    FileInputStream inFile = null;
    InputStream in = null;
    FTPClient ftpClient = null;
    logger.info("開始讀取絕對路徑" + ftpPath + "文件!");
    try {
      ftpClient = FTPUtil.getFTPClient(ftpHost, ftpPassword, ftpUserName,
          ftpPort);
      ftpClient.setControlEncoding("UTF-8"); // 中文支持
      ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
      ftpClient.enterLocalPassiveMode();
      ftpClient.changeWorkingDirectory(ftpPath);
      in = ftpClient.retrieveFileStream(fileName);
    } catch (FileNotFoundException e) {
      logger.error("沒有找到" + ftpPath + "文件");
      e.printStackTrace();
      return "下載配置文件失敗,請聯系管理員.";
    } catch (SocketException e) {
      logger.error("連接FTP失敗.");
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
      logger.error("文件讀取錯誤。");
      e.printStackTrace();
      return "配置文件讀取失敗,請聯系管理員.";
    }
    if (in != null) {
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String data = null;
      try {
        while ((data = br.readLine()) != null) {
          resultBuffer.append(data + "\n");
        }
      } catch (IOException e) {
        logger.error("文件讀取錯誤。");
        e.printStackTrace();
        return "配置文件讀取失敗,請聯系管理員.";
      }finally{
        try {
          ftpClient.disconnect();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }else{
      logger.error("in為空,不能讀取。");
      return "配置文件讀取失敗,請聯系管理員.";
    }
    return resultBuffer.toString();
  }
}

4.創建一個往FTP上寫入文件的類WriteFTPFile.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.metarnet.ftp.write;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
 
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.log4j.Logger;
 
import com.metarnet.ftp.util.FTPUtil;
 
public class WriteFTPFile {
 
  private Logger logger = Logger.getLogger(WriteFTPFile.class);
 
  /**
   * 本地上傳文件到FTP服務器
   *
   * @param ftpPath
   *      遠程文件路徑FTP
   * @throws IOException
   */
  public void upload(String ftpPath, String ftpUserName, String ftpPassword,
      String ftpHost, int ftpPort, String fileContent,
      String writeTempFielPath) {
    FTPClient ftpClient = null;
    logger.info("開始上傳文件到FTP.");
    try {
      ftpClient = FTPUtil.getFTPClient(ftpHost, ftpPassword,
          ftpUserName, ftpPort);
      // 設置PassiveMode傳輸
      ftpClient.enterLocalPassiveMode();
      // 設置以二進制流的方式傳輸
      ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
      // 對遠程目錄的處理
      String remoteFileName = ftpPath;
      if (ftpPath.contains("/")) {
        remoteFileName = ftpPath
            .substring(ftpPath.lastIndexOf("/") + 1);
      }
      // FTPFile[] files = ftpClient.listFiles(new
      // String(remoteFileName));
      // 先把文件寫在本地。在上傳到FTP上最后在刪除
      boolean writeResult = write(remoteFileName, fileContent,
          writeTempFielPath);
      if (writeResult) {
        File f = new File(writeTempFielPath + "/" + remoteFileName);
        InputStream in = new FileInputStream(f);
        ftpClient.storeFile(remoteFileName, in);
        in.close();
        logger.info("上傳文件" + remoteFileName + "到FTP成功!");
        f.delete();
      } else {
        logger.info("寫文件失敗!");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
      try {
        ftpClient.disconnect();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
 
  /**
   * 把配置文件先寫到本地的一個文件中取
   *
   * @param ftpPath
   * @param str
   * @return
   */
  public boolean write(String fileName, String fileContext,
      String writeTempFielPath) {
    try {
      logger.info("開始寫配置文件");
      File f = new File(writeTempFielPath + "/" + fileName);
      if(!f.exists()){
        if(!f.createNewFile()){
          logger.info("文件不存在,創建失敗!");
        }
      }
      BufferedWriter bw = new BufferedWriter(new FileWriter(f, true));
      bw.write(fileContext.replaceAll("\n", "\r\n"));
      bw.flush();
      bw.close();
      return true;
    } catch (Exception e) {
      logger.error("寫文件沒有成功");
      e.printStackTrace();
      return false;
    }
  }
}

5.建立一個測試類FTPMain.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.metarnet.ftp.main;
 
import java.io.InputStream;
import java.util.Properties;
 
import org.apache.log4j.Logger;
 
import com.metarnet.ftp.read.ReadFTPFile;
import com.metarnet.ftp.util.FTPUtil;
import com.metarnet.ftp.write.WriteFTPFile;
 
public class FTPMain {
   
  private static Logger logger = Logger.getLogger(FTPMain.class);
 
  public static void main(String[] args) {
    int ftpPort = 0;
    String ftpUserName = "";
    String ftpPassword = "";
    String ftpHost = "";
    String ftpPath = "";
    String writeTempFielPath = "";
    try {
      InputStream in = FTPUtil.class.getClassLoader()
          .getResourceAsStream("env.properties");
      if (in == null) {
        logger.info("配置文件env.properties讀取失敗");
      } else {
        Properties properties = new Properties();
        properties.load(in);
        ftpUserName = properties.getProperty("ftpUserName");
        ftpPassword = properties.getProperty("ftpPassword");
        ftpHost = properties.getProperty("ftpHost");
        ftpPort = Integer.valueOf(properties.getProperty("ftpPort"))
            .intValue();
        ftpPath = properties.getProperty("ftpPath");
        writeTempFielPath = properties.getProperty("writeTempFielPath");
         
        ReadFTPFile read = new ReadFTPFile();
        String result = read.readConfigFileForFTP(ftpUserName, ftpPassword, ftpPath, ftpHost, ftpPort, "huawei_220.248.192.200.cfg");
        System.out.println("讀取配置文件結果為:" + result);
         
        WriteFTPFile write = new WriteFTPFile();
        ftpPath = ftpPath + "/" + "huawei_220.248.192.200_new1.cfg";
        write.upload(ftpPath, ftpUserName, ftpPassword, ftpHost, ftpPort, result, writeTempFielPath);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

最后肯定是執行,看最后執行結果,OK步驟已講完。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲www啪成人一区二区 | 国产激情一区二区三区 | 中文字幕www. | 就操成人网 | 久在线视频 | 一级大片av| 91av入口 | 成人免费视屏 | 久色视频在线观看 | 看a网站 | 国产成人精品一区二区三区视频 | jvid精品资源在线观看 | av在线播放不卡 | 黄色片网站视频 | 午夜影院网站 | 中文字幕国产 | 欧美男人的天堂 | 日韩毛片一区二区三区 | 欧美久久久久久久 | 久久99精品视频 | 亚洲国产精品自拍视频 | 成人免费xxxxx在线视频软件 | 国产一区二区三区免费在线 | 精品国产青草久久久久福利 | 99热在线观看免费 | 国产片在线观看 | 国产中文视频 | 在线成人福利 | 日韩在线成人 | 国产精品视频一二三区 | 久久久久久亚洲 | 成人爽a毛片一区二区免费 日韩av高清在线 | 黄色网页大全 | 黄色免费av | 国产精品久久久久久久久久久久 | 日韩免费视频 | 懂色av一区二区三区免费观看 | 免费看黄色一级视频 | 欧美色综合天天久久综合精品 | 亚洲欧美日韩国产综合 | 色综合久久久久 |