В программах Java вам часто нужно иметь дело с FTP, например, загрузка и загрузка файлов на FTP -сервер. В этой статье кратко представлены, как использовать FTPClient в Jakarta Commons (в пакете Commons-Net) для загрузки и загрузки файлов.
Используемые пакеты банок:
Commons-Net-1.4.1.jar
Джакарта-Ору.Джар
1. Загрузить файлы
Загрузка файла исходный код/*** Описание: файл загрузки на сервер FTP* @version1.0* @param url ftp server hostname* @param порт сервер FTP* @param username username forgin chound* @param filenam successfully, otherwise false */ public static boolean uploadFile( String url,//FTP server hostname int port,//FTP server port String username, // FTP login account String password, // FTP login password String path, // FTP server saves the directory String filename, // Upload to the FTP server InputStream input // Input stream) { boolean success = false; Ftpclient ftp = new ftpclient (); попробуйте {int ответить; ftp.connect (url, порт); // Подключите FTP -сервер // Если используется порт по умолчанию, вы можете напрямую подключиться к FTP -серверу с помощью ftp.connect (url); ftp.login (имя пользователя, пароль); // login 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 успех; } Вот тестовые примеры для загрузки файлов:
/*** Загрузите локальные файлы на FTP -сервер**/public void testuploadFromDisk () {try {fileInputStream in = new FileInputStream (new File ("d: /test.txt")); Boolean flag = uploadfile ("127.0.0.1", 21, "Администратор", "Zyuc2011", "test", "test.txt", in); System.out.println (flag); } catch (filenotFoundException e) {e.printstackTrace (); }} / ** * Сгенерируйте файл на сервере FTP и напишите строку в файл * * / public void testuploadFromString () {try {String Str = "Это строка, которую нужно записать!"; InputStream input = new BytearRayinputStream (str.getBytes ("UTF-8")); Boolean flag = uploadfile ("127.0.0.1", 21, "Администратор", "Zyuc2011", "test", "test.txt", input); System.out.println (flag); } catch (unsupportEncodingexception e) {e.printstacktrace (); }} 2. Скачать файл <br /> file Загрузить исходный код
/*** Описание: Загрузите файл с FTP -сервера* @version1.0* @param url url ftp -сервер hostname* @param port ftp -сервер порта* @param username username worgy chound* @param пароль ftp login password* @param remotpath Относительный путь на FTP Server* @param filenam */public static boolean downfile (string url, // ftp -сервер hostname int int port, // ftp -серверный порт строки string username, // ftp chound string string password, // ftp login string remotepath, // относительный путь в строковом FTP -сервере, // имя файла, чтобы быть загруженным String LocalPath // Path Save Soveaed to Local после загрузки. 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 успех; } Вот тестовые примеры для загрузки файлов:
/** * Загрузите файл на сервере FTP на локальный * */public void testdownfile () {try {boolean flag = downfile ("127.0.0.1", 21, "Администратор", "Zyuc2011", "test", "test.txt", "d:/"); System.out.println (flag); } catch (Exception e) {e.printstackTrace (); }}Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.