You must use org.apache.commons.net. FTP. ftpclient to operate FTP.
This class is well-encapsulated and easy to use. It only encounters a small problem when using retrievefilestream, that is, it does not know how to complete the transmission status and try to send the Abor command. I consulted bianbian and checkedSource codeYou can see this section to solve the problem later:
/** You must close the inputstream when you * Finish reading from it. the inputstream itself will take care of * closing the parent data connection socket upon being closed. to * finalize the file transfer you must call * {@ link # completependingcommand} and * check its return value to verify success. */
CodeAs follows:
Import org.apache.commons.net. FTP. ftpclient; import Java. io. ioexception; import Java. io. inputstream; import java.net. socketexception; public class testftp {public static void main (string [] ARGs) {try {ftpclient FTP = new ftpclient (); // initialize FTP connection string remotefile = "test. XML "; inputstream is = NULL; Is = FTP. retrievefilestream (remotefile); If (is! = NULL) {is. Close () ;}if (! FTP. completependingcommand () {FTP. logout (); FTP. disconnect () ;}// continue} catch (socketexception e) {e. printstacktrace ();} catch (ioexception e) {e. printstacktrace ();}}}
Blog Source:Http://blog.sunshow.net/2007/03/ftpclient-retrievefilestream-usage/