// set up logger so that we get some output
Logger log = Logger.getLogger(TransferUsingStreams.class);
Logger.setLevel(Level.INFO);
FileTransferClient ftp = null;
try {
// create client
log.info("Creating FTP client");
ftp = new FileTransferClient();
// set remote host
ftp.setRemoteHost(host);
ftp.setUserName(username);
ftp.setPassword(password);
// connect to the server
log.info("Connecting to server " + host);
ftp.connect();
log.info("Connected and logged in to server " + host);
// byte array transfers
String s1 = "Hello world";
log.info("Putting s1");
OutputStream out = ftp.uploadStream("Hello.txt");
try {
out.write(s1.getBytes());
}
finally {
out.close(); // MUST be closed to complete the transfer
}
log.info("Retrieving as s2");
StringBuffer s2 = new StringBuffer();
InputStream in = ftp.downloadStream("Hello.txt");
try {
int ch = 0;
while ((ch = in.read()) >= 0) {
s2.append((char)ch);
}
}
finally {
in.close(); // MUST be closed to complete the transfer
}
log.info("s1 == s2: " + s1.equals(s2.toString()));
ftp.deleteFile("Hello.txt");
// Shut down client
log.info("Quitting client");
ftp.disconnect();
log.info("Example complete");
} catch (Exception e) {
e.printStackTrace();