Java——通过Java代码连接ftp服务器

作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【javaUp】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊。 微信:shuhao-99999 

使用依赖包commons-net:

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.8.0</version>
</dependency>

 java代码里面使用上面依赖包中的FTPClient;

通过四个参数连接ftp:ip、端口、用户名、密码

import org.apache.commons.net.ftp.FTPReply;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.apache.commons.net.ftp.FTPClient;

import java.io.IOException;

@Service
public class FtpClientManager {
    private static Logger logger = LoggerFactory.getLogger(FtpClientManager.class);

    @Value("${ftp.ip}")
    private String ip;

    @Value("${ftp.port}")
    private Integer port;

    @Value("${ftp.username}")
    private String username;

    @Value("${ftp.password}")
    private String password;

    private FTPClient ftpClient = null;

    public FTPClient getClient() {
        if (this.ftpClient == null) {
            this.initClient();
        }
        return this.ftpClient;
    }

    private void initClient() {
        if (this.ftpClient == null) {
            ftpClient = new FTPClient();
            try {
                ftpClient.connect(ip);
                ftpClient.login(username, password);
                int reply = ftpClient.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftpClient.disconnect();
                }
                logger.info("success to connect ftp server");
            } catch (IOException e) {
                logger.error("faild to connect ftp server because " + e.getMessage());
                System.exit(0);
            }
        }
    }
}

posted @ 2021-06-04 19:36  前方一片光明  阅读(2140)  评论(0编辑  收藏  举报