`/* * * Copyright (C) 2006 Enterprise Distributed Technologies Ltd * * www.enterprisedt.com */ import java.io.File; import com.enterprisedt.net.ftp.FileTransferClient; import com.enterprisedt.net.ftp.FTPFile; import com.enterprisedt.net.ftp.FTPTransferType; import com.enterprisedt.util.debug.Level; import com.enterprisedt.util.debug.Logger; public class UseTransferModes { public static void main(String[] args) { // we want remote host, user name and password if (args.length < 3) { System.out .println("Usage: run remote-host username password"); System.exit(1); } // extract command-line arguments String host = args[0]; String username = args[1]; String password = args[2]; // set up logger so that we get some output Logger log = Logger.getLogger(UseTransferModes.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); ftp.setContentType(FTPTransferType.BINARY); uploadDownloadDelete("UseTransferModes.java", ftp); log.info("Successfully transferred in binary mode"); ftp.setContentType(FTPTransferType.ASCII); uploadDownloadDelete("UseTransferModes.java", ftp); log.info("Successfully transferred in ASCII mode"); // Shut down client log.info("Quitting client"); ftp.disconnect(); log.info("Example complete"); } catch (Exception e) { e.printStackTrace(); } } /** * Put a file, get it back as a copy and delete the local copy and the * remote copy * * @param name * original filename * @param ftp * reference to FTP client */ private static void uploadDownloadDelete(String name, FileTransferClient ftp) throws Exception { ftp.uploadFile(name, name); ftp.downloadFile(name + ".copy", name); ftp.deleteFile(name); File file = new File(name + ".copy"); file.delete(); } }`