FTPClient ftpClient = new FTPClient();
ftpClient.connect(hostname, port);
ftpClient.login(username, password);
ftpClient.changeWorkingDirectory(remoteDirectory);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
File localFile = new File(localFilePath);
InputStream inputStream = new FileInputStream(localFile);
boolean uploaded = ftpClient.storeFile(remoteFileName, inputStream);
inputStream.close();
ftpClient.disconnect();
FTPClient ftpClient = new FTPClient();
ftpClient.connect(hostname, port);
ftpClient.login(username, password);
ftpClient.changeWorkingDirectory(remoteDirectory);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
File localFile = new File(localFilePath);
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
boolean downloaded = ftpClient.retrieveFile(remoteFileName, outputStream);
outputStream.close();
ftpClient.disconnect();
FTPClient ftpClient = new FTPClient();
ftpClient.connect(hostname, port);
ftpClient.login(username, password);
boolean created = ftpClient.makeDirectory(directoryName);
ftpClient.disconnect();