В разработке программы Java FTP используется чаще и часто имеет дело с ней, например, загрузка и загрузка файлов на FTP -сервер. Эта статья знакомит вас с тем, как использовать FTPClient в Jakarta Commons (в пакете Commons-Net) для загрузки и загрузки файлов.
1. Загрузить файлы
Я не буду представить принцип, пожалуйста, прочтите код напрямую
/** * Description: Upload file to the FTP server* @Version1.0 Jul 27, 2008 4:31:09 PM by Cui Hongbao ([email protected]) Create * @param url FTP server hostname * @param port FTP server port * @param username FTP login account * @param password FTP login password * @param path FTP server save directory * @param filename загрузить на сервер FTP* @param входной поток ввода* @return return true успешно, в противном случае возвращает false*/ publicstaticboolean uploadfile (string url, int port, string username, string parport, string path, string filename, inputstream input) {boolean success = false; Ftpclient ftp = new ftpclient (); попробуйте {int ответить; ftp.connect (url, port); // Подключить FTP -сервер // Если используется порт по умолчанию, вы можете напрямую подключиться к FTP -серверу с помощью ftp.connect (url); ftp.login (имя пользователя, пароль); // rougin response = ftp.getReplyCode (); if (! ftpreply.ispositivecoplusion (reply)) {ftp.disconnect (); вернуть успех; } ftp.ChangeWorkingDirectory (path); ftp.storefile (имя файла, вход); input.close (); ftp.logout (); Успех = правда; } catch (ioException e) {e.printstackTrace (); } наконец {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} return успех; }<pre></pre> /*** Description: Upload file to the FTP server* @Version1.0 Jul 27, 2008 4:31:09 PM by Cui Hongbao ([email protected]) Create * @param url FTP server hostname* @param port FTP server port* @param username FTP login account* @param password FTP login password* @param path FTP -сервер Сохранить каталог* @param filename загрузить на сервер FTP* @param входной поток ввода* @return return true успешно, в противном случае вернуть false*/public static boolean uploadfile (string url, int port, string username, string password, string filename, inputstream input) {boolean success = false; ftpclient ftp = new fteme, inputstream) {boolean success = false; ftpclient ftp = new Ft -fileName, inputStream) {booleAn Success = false; Ответить; ftp.connect (url, port); // Подключить FTP -сервер // Если используется порт по умолчанию, вы можете напрямую подключиться к серверу FTP с помощью ftp.connect (url); ftp.login (имя пользователя, пароль); // rougin response = ftp.getReplyCode (); если (! {ftp.disconnect (); return Success;} ftp.changeWorkingDirectory (path); ftp.StoreFile (filename, input); input.close (); ftp.logout (); success = true;} catch (ioexception e) {e.printstacktrace ();} наконец {if (ftp.isconnected ()) {try {ftp.disconnect ();} catch (ioxexception ioe) {}} return;
Давайте напишем два маленьких примера:
1. Загрузите локальный файл на FTP -сервер, код следующим образом:
@Test publicvoid testuploadFromDisk () {try {fileInputStream in = new FileInputStream (new File ("d: /test.txt")); Boolean flag = uploadfile ("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", in); System.out.println (flag); } catch (filenotFoundException e) {e.printstackTrace (); / in); System.out.println (flag);} catch (filenotfoundexception e) {e.printstacktrace ();}} 2. Сгенерируйте файл на сервере FTP и напишите строку в файл
@Test publicvoid testuploadFromString () {try {inputStream input = new BytearRayinputStream ("test ftp" .getbytes ("utf-8")); Boolean flag = uploadfile ("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", input); System.out.println (flag); } catch (unsupportEncodingexception e) {e.printstacktrace (); }} <pre> </pre> @testpublic void testuploadfromString () {try {inputStream input = new BytearRayinputStream («test ftp» .getBytes («UTF-8»); Boolean flag = uploadfile («127.0.0.1, 21,», «Test», «Test», «test», «test», «test», «test». input); system.out.println (flag);} catch (unsupportedencodingexception e) {e.printstacktrace ();}} 2. Загрузите файл
Код для загрузки файлов с FTP -сервера также очень прост, обратитесь к нему следующим образом:
/*** Описание: Загрузите файл с FTP -сервера* @version. Jul, :: PM от Cui Hongbao ([email protected]) Создание* @param URL-url FTP-сервер HostName* @param Port FTP Server Port* @param username amernam локальный после загрузки * @return */ publicstaticboolean downfile (string url, int port, String username, String password, String remotePath, String fileName, String localPath) {Boolean Success = false; Ftpclient ftp = new ftpclient (); попробуйте {int ответить; ftp.connect (url, порт); // Если используется порт по умолчанию, вы можете напрямую подключиться к FTP -серверу с помощью ftp.connect (url); ftp.login (имя пользователя, пароль); // rougin response = ftp.getReplyCode (); if (! ftpreply.ispositivecoplusion (reply)) {ftp.disconnect (); вернуть успех; } ftp.ChangeWorkingDirectory (remotePath); // Передача в каталог FTP -сервера ftpfile [] fs = ftp.listfiles (); for (ftpfile ff: fs) {if (ff.getName (). equals (filename)) {file localfile = new File (localPath+"/"+ff.getName ()); OutputStream is = new FileOutputStream (LocalFile); ftp.retrievefile (ff.getName (), IS); is.close (); }} ftp.logout (); Успех = правда; } catch (ioException e) {e.printstackTrace (); } наконец {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} return успех; } <pre> </pre>