Cet article décrit la méthode de téléchargement de fichiers sur un serveur FTP par Java. Partagez-le pour votre référence, comme suit:
Outils:
package com.fz.common.util; import java.io.datainputstream; import java.io.dataoutputstream; import java.io.fileinputstream; import java.io.filenotfoundException; import java.io.fileoutStream; importer java.ioexception; import java.io.Inputstream; importat java.text.simpledateFormat; import java.util.date; import org.apache.commons.net.ftp.ftpclient; import org.apache.commons.net.ftp.ftpreply; classe publique Fileutil {/ ** * * @date 26 sept DataRainPutStream getInput () {datainputStream d = null; try {d = new DatainputStream (new FileInputStream ("c: /wmc.dat")); retour d; } catch (filenotfoundException e) {// TODO Block de capture généré automatiquement e.printStackTrace (); } return d; } / ** * * @Date 26 sept try {d = new DataOutputStream (new FileOutputStream (fichier)); D.Write (Blancs); d.flush (); } catch (exception e) {// TODO Generated Catch Block return false; // e.printStackTrace (); } return true; } / ** * * @Date 16 sept. 2011 4:39:22 PM * @Param URL * @param nom d'utilisateur * @param mot de passe * @param path * @param nom de fichier * @param entrée * @return * @authorn zhangh * / public static booléen uploadfile (string url, string userName = FACTY, String Path, String FileName, puttream. FtpClient ftp = new ftpClient (); essayez {int réponse; ftp.connect (URL); // ftp.connect (URL, port); // Connectez-vous au 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); // connecter réponse = ftp.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {ftp.disconnect (); retourner le succès; } ftp.changeworkingDirectory (path); ftp.storefile (nom de fichier, entrée); ftp.logout (); input.close (); succès = vrai; } catch (ioException e) {e.printStackTrace (); } enfin {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}} return succès; } / ** * * Nom de la méthode: uploadFileftp * Méthode Description: Blacklist, Black User Fichier Téléchargez le serveur FTP * @param URL * @param username * @param mot de passe * @param path * @param filename * @param entrée * @param input2 * uploadFileftp (URL de chaîne, nom d'utilisateur de chaîne, mot de passe de chaîne, chemin de chaîne, nom de fichier de chaîne, entrée InputStream, inputStream input2) {date date = new Date (); SimpledateFormat Formatter = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); String time = formatter.format (date); Booléen Success = False; FtpClient ftp = new ftpClient (); essayez {int réponse; 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); ftp.storefile (nom de fichier + time, input2); ftp.logout (); input.close (); succès = vrai; } catch (ioException e) {e.printStackTrace (); } enfin {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioException ioe) {}}} return succès; }}Lisez le fichier de configuration:
package com.fz.fzbike.domain; import java.io.bufferedinputStream; import java.io.fileInputStream; import java.io.properties; import java.io.inputstream; import java.util.properties; Classe Bean qui obtient des informations sur le serveur FTP * * @Author Wuxq * * / classe publique SysConStats {private static logger log = logger.getLogger (sysconstats.class); Public Static String ftpServer; // FTP Server Adresse IP publique Static String FtpUsername; // FTP Server Username Public Static String Ftppassword; // FTP Server Motword Motway Sysconstants.public_path.substring (0, sysconstants.public_path.length () - 7) + "/bidFileConfig.properties")); Propriétés Prop = New Properties (); Prop.Load (in); SysConstats.ftPServer = prop.getProperty ("ftpServer", "Aucun"); Sysconstats.ftpusername = prop.getProperty ("ftpusername", "aucun"); Sysconstats.ftppassword = prop.getProperty ("ftppassword", "aucun"); SysConstats.envelopereSultroot = prop.getProperty ("EnveloppeReresulTroot", "Aucun"); log.debug ("lire les informations de configuration FTP avec succès!"); } catch (ioException e) {log.debug ("Échec de la lecture des informations de configuration FTP!"); e.printStackTrace (); }} String statique public getftPSserver () {return ftPServer; } public static void setftPSserver (String ftpServer) {ftpServer = ftpServer; } public static static getftpusername () {return ftpusername; } public static void setftpusername (string ftpusername) {ftpusername = ftpusername; } public static String getftppassword () {return ftppassword; } public static void setftppassword (string ftppassword) {ftppassword = ftppassword; } String statique publique GetenEveloreSultroot () {return EnvelopeResulTroot; } public static void setenEveloreSultroot (String enveloperesultroot) {enveloppeResulTroot = enveloppeResulTroot; } public static void main (String args []) {new sysConStats (); }}Téléchargez le fichier ftp:
Package com.fz.fzbike.biz; importer java.io.bufferedInputStream; import java.io.bytearrayoutputStream; import java.io.dataoutputStream; import java.io.fileinputstream; import java.io.filenotfoundException; import java.io.ioexception; import java.io. java.text.decimalformat; import com.enets.basysys.user.vo.uservo; import com.enets.framework.assemble.requesthashnew; import com.enets.framework.database.dbconnection; import com.fz.common.util. com.fz.fzbike.domain.sysConStats; / ** * Téléchargez le code de la carte sur le serveur FTP pour générer un fichier BAT * * @Author Wuxq 2011-09-28 * / Classe publique UploadCardinnoftpaction 10:38:38 AM * / public void uploadftp (requesthashnew reh) {String cardType = reh.get ("cardType"). ToString (); DbConnection dbc = reh.getdbc (); // liaison de la base de données dbc.endtran (); // Déterminez s'il est vide et qu'il peut s'agir d'une perte de rapport, quittez la perte de rapport, quittez la liste noire et obtenez le type de carte en fonction de l'ID de la carte if (StringUtil.isnull (CardType)) {String CardTypesql = "SELECT CI.CARD_TYPE FROM LC_T_CARD_INFO CI WHERE CI.CARD_ID =" + Reh.get ("Selected"); CardType = dbc.GetList0 (CardTypesQL); } String top = "c: / upload /"; File de chaîne = top + "bmc.dat"; // Définissez un répertoire pour stocker la chaîne de fichiers de batte de la liste noire temporaire whitefile = top + "wmc.dat"; // définir un répertoire pour stocker la chaîne de fichiers de batte blanche temporaire buserfile = top + "buser.dat"; // Définissez un répertoire pour stocker une chaîne de fichiers utilisateur noire temporaire fileId = dbc.SetoracleGlideValue ("lc_t_upgrade_file"); // Obtenez le numéro de série de la table de fichiers // Obtenez l'ID utilisateur actuel userVo = reh.getUserVo (); String userId = userVo.getUserId (); Decimalformat df = new Decimalformat ("0,0"); if (cardType.equals ("7")) {StringBuffer bf = new StringBuffer (1024); bf .append ("Sélectionner une carte distincte_in_no depuis (sélectionnez tc.card_in_no") .append ("from lc_t_blacklist tb gauche join lc_t_card_info tc") .append ("on tb.card_id = tc.card_id où tc.card_type = 7"). Sélectionnez ") .append (" tc.card_in_no from lc_t_card_loss cl gauche join ") .append (" lc_t_card_info tc on cl.card_id = tc.card_id où tc.card_type = 7 et ") .Neprend (" cl. what_effective = 1) t. Enregistrements dans la liste noire et le rapport Record Table StringBuffer Brush = new StringBuffer (1024); bffer .append ("SELECT TI.CARD_IN_NO FROM LC_T_CARD_INFO TI") .APPEND ("WHERE TI.CARD_TYPE = 7 et TI.CARD_MAKE_STATUS = 2 Commande par ti.card_in_no"); // Tous les enregistrements d'administrateur dans le tableau d'informations Black String arr [] [] = dbc.Getarr (bf.ToString ()); // Définissez un tableau pour recevoir les codes de carte triés dans la chaîne de table d'information de la carte écouter [] [] = dbc.Getarr (bffer.toString ()); upload_f (arr, fichier); // Obtenez le numéro de version du fichier BAT BlackList, la valeur initiale est 1.0 String vectorsql = "SELECT File_Vision From (SELECT ROW_NUMBER () Over (Ordre par t.file_vesion desc) num," + "t.file_vesion à partir de lc_t_upgrade_file t où t.file_type = 2) où num = 1"; String Vesion = dbc.GetList0 (VesionsQL); Double VE = 1,0; // Définir la variable Numéro de version de liste noire, la valeur initiale est de 1,0 / * * s'il y a une ancienne version dans la base de données, la version sera augmentée de 0,1 * / if (stringUtil.isnotnull (Vesion)) {ve = (double.parsedouble (Vesion) + 0,1); } Vesion = df.format (ve); // Version enregistre la chaîne d'instruction SQL BMCSQL = "INSERT dans LC_T_UPGRADE_FILE VALUES (" + FileID + ", '" + File + "', '" + Vesion + "', '2', sysdate," + userId + ")"; dbc.InsertDB (bmcsql); // persistent à la base de données upload_f (listarr, whitefile); // Obtenez le numéro de version du fichier BAT à liste blanche, la valeur initiale est de 1,0 chaîne Vesionsql2 = "SELECT File_Vision dans (sélectionnez ROW_NUMBER () sur (ordre par t.file_vesion desc) num," + "t.file_vesion dans LC_T_UPRADE_FILE T où t.file_type = 5) où num = 1"; String Vesion2 = dbc.GetList0 (Vesionsql2); Double VE2 = 1,0; // Définir la variable de numéro de version de liste blanche, la valeur initiale est 1,0 / * * S'il y a une ancienne version dans la base de données, la version sera augmentée de 0,1 * / if (StringUtil.isnotnull (Vesion2)) {ve2 = (double.parsedouble (Vesion2) + 0,1); } String bfileid = dbc.SetoracleGlideValue ("lc_t_upgrade_file"); // Obtenez le numéro de série de la table de fichier Vesion2 = df.format (VE2); // Version enregistre la chaîne de instruction SQL BMCSQL2 = "INSERT INTO LC_T_UPGRADE_FILE VALEURS (" + bfileID + ", '" + WhiteFile + "', '" + Vesion2 + "', '5', sysdate," + userrid + ")";; dbc.Insertdb (bmcsql2); // persistant vers la base de données} else {stringBuffer bf2 = new StringBuffer (1024); BF2 .APPEND ("SELECT CARD_IN_IN_NO FROM (SELECT TC.CARD_IN_NO") .APPEND ("FROM LC_T_BLACKLIST TB LET JOIN LC_T_CARD_INFO TC") .APPEND ("ON TB.CARD_ID = TC.CARD_ID WHERE TC.CARD_TYPE <> 7"). Sélectionnez ") .append (" tc.card_in_no from lc_t_card_loss cl gauche join ") .append (" lc_t_card_info tc on cl.card_id = tc.card_id ") .append (" où tc.card_type <> 7 et cl. what_effective ") .Append (" = 1) t commande by by bord by by bord by bord by bord by bord by bord by bord bord bord bord bord bord bord bord bord bord bord bord bord bord bord bord bord by t.card_in_no "); // Tous les enregistrements non administrateurs dans la table noire et la table utilisateur perdue // Définir un tableau pour recevoir les codes de carte utilisateur triés dans les utilisateurs noirs String Arr2 [] [] = dbc.Getarr (bf2.ToString ()); upload_f (Arr2, BuserFile); // obtient le numéro de version du fichier BAT User Black, la valeur initiale est 1.0 String hSersql = "SELECT File_Vision From (SELECT ROW_NUMBER () Over (Ordre par t.file_vesion desc) num," + "t.file_vesion dans LC_T_UPRADE_FILE T où t.file_type = 4) où num = 1"; String Vesion3 = dbc.GetList0 (HUSERSQL); double ves = 1.0; // définir la variable de numéro de version de l'utilisateur noir, la valeur initiale est 1.0 / * * S'il y a une ancienne version dans la base de données, la version sera augmentée de 0,1 * / if (stringUtil.isnotnull (Vesion3)) {ves = (double.parsedouble (Vesion3) + 0,1); } Vesion3 = df.format (ves); // Version enregistre la chaîne de déclaration sql husersql = "insérer dans lc_t_upgrade_file valeurs (" + fileid + ", '" + buserfile + "', '" + veion3 + "', '4', sysdate," + userId + ")"; dbc.insertdb (husersql); // persiste à la base de données}} / ** * * Nom de la méthode: Méthode WriteLong Description: Écrivez entier long au flux de sortie * * @param entrée * @return byte [] version 1.0 Auteur wuxq 28 septembre) ByteArrayOutputStream (); DataOutputStream OS = new DataOutputStream (BAOS); essayez {os.writelong (long.reverseBytes (entrée)); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); } octet [] b = baos.toByteArray (); retour b; } / ** * * Nom de la méthode: Méthode upload_f Description: Téléchargez le fichier sur le serveur FTP * * @param arr * @param fichier * void version 1.0 Auteur wuxq 8 oct. 2011 11:37:27 am * / public static void upload_f (String [] [] arr, string file) {octe by [] = null; octet [] résultat = nouveau octet [1]; if (stringUtil.isnotnull (arr)) {result = new Byte [arr.length * 4]; position int = 0; for (int i = 0; i <arr.length; i ++) {by = writeLong (long.parselong (arr [i] [0])); Liste d'octets [] = Nouveau octet [4]; for (int h = 0; h <list.length; h ++) {list [h] = par [h]; } pour (int g = position; g <position + 4; g ++) {résultat [g] = list [g - 4 * i]; } position = position + 4; }} boolean bool = fileutil.creatwHiteManageFile (résultat, fichier); // créer un fichier bat if (bool) {// inputStreamReader iSr = new inputStreamReader (new // fileInputStream (file)); InputStream inp = null; InputStream inp2 = null; try {inp = new BufferedInputStream (new FileInputStream (fichier)); inp2 = new BufferedInputStream (new FileInputStream (fichier)); } catch (filenotfoundException e) {// TODO Block de capture généré automatiquement e.printStackTrace (); } // Intercepter la chaîne de nom de fichier f = file.substring (10, file.length ()); // obtenir des informations de configuration FTP SysConStats SC = new SysConStats (); FileUtil.uploadFileftp (sc.ftpsserver, sc.ftpusername, sc.ftppassword, sc.enveloperesultroot, f, inp, inp2); }}}Pour plus d'informations sur le contenu lié à Java, veuillez consulter les sujets de ce site: "Résumé des fichiers Java et des compétences de fonctionnement des répertoires", "Tutoriel sur les structures de données Java et les algorithmes", "Résumé des compétences de l'opération de nœud DOM de l'opération Java" et "Résumé des compétences de fonctionnement de Java Cache" "
J'espère que cet article sera utile à la programmation Java de tous.