Dans le développement du programme Java, FTP est utilisé plus souvent et le traite souvent, tel que le téléchargement et le téléchargement de fichiers sur le serveur FTP. Cet article vous explique comment utiliser le FTPClient dans Jakarta Commons (dans le package Commons-Net) pour télécharger et télécharger des fichiers.
1. Télécharger des fichiers
Je ne présenterai pas le principe, veuillez lire directement le code
/** * 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 Téléchargez sur le serveur FTP * @param Input Input Stream * @return renvoie true avec succès, sinon renvoie false * / publicStaticBoolean uploadFile (URL de chaîne, port int, nom d'utilisateur de chaîne, mot de passe de chaîne, chemin de chaîne, nom de file, entrée InputStream) {Boolean Success = false; FtpClient ftp = new ftpClient (); essayez {int réponse; ftp.connect (URL, port); // Connectez le serveur FTP // Si le port par défaut est utilisé, vous pouvez vous connecter directement au serveur FTP à l'aide de FTP.Connect (URL); ftp.login (nom d'utilisateur, mot de passe); // connexion de connexion = ftp.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {ftp.disconnect (); retourner le succès; } ftp.changeworkingDirectory (path); ftp.storefile (nom de fichier, entrée); input.close (); ftp.logout (); succès = vrai; } catch (ioException e) {e.printStackTrace (); } enfin {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} return succès; } <pre> </ pre> / *** Description: Téléchargez un fichier sur le serveur FTP * @ version1.0 27 juil 2008 4:31:09 PM par Cui Hongbao ([email protected]) Créer * @param url ftp server hostname * @param port ftp server port * @param username ftp login FTP Server Enregistrer le répertoire * @param Téléchargement de nom de fichier sur le serveur FTP * @Param Input Input Stream * @return return True avec succès, sinon renvoie False * / Public Static Boolean uploadfile (Url de chaîne, port int) {Boolean Success = false; FTPClient ftp = new ftpclient (); Répondre; ftp.connect (URL, port); // connecter le serveur FTP // Si le port par défaut est utilisé, vous pouvez vous connecter directement au serveur FTP en utilisant ftp.connect (URL); ftp.login (nom d'utilisateur, mot de passe); // connexation de connexion = ftp.getRepLycode (); if (! ftpreply.ispositIveRICK {ftp.disconnect (); return Success;} ftp.changeworkingDirectory (path); ftp.storefile (nom de fichier, entrée); input.close (); ftp.logout (); success = true;} catch (ioException e) {e.printStackTrace ();} enfin {if (ftp.isconnected ()) {try {ftp.disconnect ();} catch (ioException ioe) {}}} return Success;}
Écrivons deux petits exemples:
1. Téléchargez le fichier local sur le serveur FTP, le code est le suivant:
@Test publicVoid TestUploadFromDisk () {try {fileInputStream dans = new FileInputStream (nouveau fichier ("d: /test.txt")); booléen flag = uploadfile ("127.0.0.1", 21, "test", "test", "d: / ftp", "test.txt", in); System.out.println (drapeau); } catch (filenotFoundException e) {e.printStackTrace (); }} <pre> </ pre> @TestPublic void TESTUPLOADFROMDISK () {try {fileInputStream in = new FileInputStream (nouveau fichier ("d: /test.txt")); boolean flag = uploadfile ("127.0.0.1", 21, "test", "test", "d: / ftp", "test.txt", " in); System.out.println (drapeau);} catch (filenotfoundException e) {e.printStackTrace ();}} 2. Générez un fichier sur le serveur FTP et écrivez une chaîne dans le fichier
@Test publicVoid TESTUPLOLODFROMSTRING () {try {inputStream input = new ByteArrayInputStream ("test ftp" .getBytes ("utf-8")); booléen flag = uploadfile ("127.0.0.1", 21, "test", "test", "d: / ftp", "test.txt", entrée); System.out.println (drapeau); } catch (UnportEnCcodingException e) {e.printStackTrace (); }} <pre> </ pre> @TestPublic void TESTUPLOLODFROMSTRING () {try {inputStream input = new ByteArrayInputStream ("test ftp" .getBytes ("utf-8")); boolean flag = uploadfile ("127.0.0.1", 21, "test", "test", "d: / ft", ". entrée); System.out.println (Flag);} catch (UnportEnCoDencomexception e) {e.printStackTrace ();}} 2. Téléchargez le fichier
Le code de téléchargement de fichiers à partir d'un serveur FTP est également très simple, veuillez y faire référence comme suit:
/ ** * Description: Téléchargez le fichier depuis le serveur FTP * @version. JULU, :: PM par Cui Hongbao ([email protected]) Créer * @param URL FTP Server Hostname * @param port FTP Server Port * @param Username FTP Login Compte * @Param Password Ftp Login Mot de passe de connexion * le local après téléchargement * @return * / publicStaticBoolean downfile (URL de chaîne, port int, nom d'utilisateur de chaîne, mot de passe de chaîne, string remotePath, String FileName, String localPath) {boolean Success = false; FtpClient ftp = new ftpClient (); essayez {int réponse; ftp.connect (URL, port); // Si le port par défaut est utilisé, vous pouvez vous connecter directement au serveur FTP en utilisant ftp.connect (URL); ftp.login (nom d'utilisateur, mot de passe); // connexion de connexion = ftp.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {ftp.disconnect (); retourner le succès; } ftp.changeworkingDirectory (RemotePath); // Transférer vers le répertoire FTP du serveur ftpfile [] fs = ftp.listFiles (); for (ftpfile ff: fs) {if (ff.getName (). equals (fileName)) {file localfile = new file (localPath + "/" + ff.getName ()); OutputStream est = new FileOutputStream (localFile); ftp.RetReeveFile (ff.getName (), IS); is.close (); }} ftp.logout (); succès = vrai; } catch (ioException e) {e.printStackTrace (); } enfin {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} return succès; } <pré> </pan