[java] Apache Commons Net의 샘플 코드

Apache Commons Net은 Java로 작성된 네트워크 프로토콜 클라이언트 라이브러리로, FTP, SMTP, POP3, IMAP 등 다양한 프로토콜을 지원합니다. 이 라이브러리를 사용하여 FTP 클라이언트를 구현하는 간단한 예제를 제공하겠습니다.

먼저, Apache Commons Net을 Maven을 통해 프로젝트에 추가합니다.

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

다음은 Apache Commons Net을 사용하여 FTP 서버로 연결하고 파일을 다운로드하는 Java 코드의 예제입니다.

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileOutputStream;
import java.io.IOException;

public class FTPClientExample {
    public static void main(String[] args) {
        String server = "ftp.example.com";
        int port = 21;
        String user = "username";
        String pass = "password";
        String remoteFilePath = "/path/to/remote/file.txt";
        String localFilePath = "localfile.txt";

        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(server, port);
            ftpClient.login(user, pass);
            ftpClient.enterLocalPassiveMode();
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

            FileOutputStream fos = new FileOutputStream(localFilePath);
            boolean success = ftpClient.retrieveFile(remoteFilePath, fos);
            fos.close();

            if (success) {
                System.out.println("파일을 성공적으로 다운로드하였습니다.");
            } else {
                System.out.println("파일을 다운로드하는 중에 문제가 발생하였습니다.");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.logout();
                    ftpClient.disconnect();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

이 예제에서는 Apache Commons Net의 FTPClient를 사용하여 FTP 서버로 연결하고, retrieveFile 메서드를 호출하여 원격 파일을 로컬로 다운로드하는 방법을 보여줍니다.

이렇게 하면 Apache Commons Net을 사용하여 간단한 FTP 클라이언트를 구현할 수 있습니다. 필요에 따라 FTP 서버로 파일을 업로드하거나 추가적인 작업을 수행할 수도 있습니다.

참고 자료: