import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FTPExample {
public static void main(String[] args) {
String server = "ftp.example.com";
int port = 21;
String user = "username";
String pass = "password";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
int replyCode = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("Connection failed");
return;
}
boolean success = ftpClient.login(user, pass);
if (!success) {
System.out.println("Could not login to the server");
return;
}
System.out.println("Connected and logged in to the server");
String remoteDirectory = "/path/to/remote/folder";
boolean changed = ftpClient.changeWorkingDirectory(remoteDirectory);
if (changed) {
System.out.println("Directory changed successfully.");
} else {
System.out.println("Failed to change directory.");
return;
}
FTPFile[] files = ftpClient.listFiles();
for (FTPFile file : files) {
if (file.isFile()) {
String remoteFile = file.getName();
InputStream inputStream = ftpClient.retrieveFileStream(remoteFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
inputStream.close();
ftpClient.completePendingCommand();
}
}
} catch (IOException ex) {
System.out.println("Oops! Something went wrong");
ex.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}