Use la herramienta Apache FTP para cargar, descargar y eliminar archivos, de la siguiente manera
1. Descargue el paquete JAR correspondiente
Commons-net-1.4.1.Jar
2. El código de implementación es el siguiente:
clase pública ftputils {// ftp dirección de servidor public string hostname = "192.168.1.249"; // El número de puerto del servidor FTP predeterminado a 21 Public Integer Port = 21; // FTP Cuenta de inicio de sesión Cadena pública UserName = "root"; // FTP Iniciar contraseña Public String Password = "123"; público ftpClient ftpClient = null; / *** Inicializar el servidor FTP*/ public void initftpClient () {ftpClient = new ftpClient (); ftpclient.setControlEncoding ("UTF-8"); Pruebe {System.out.println ("Connecting ... Ftp Server:"+this.hostname+":"+this.port); ftpClient.connect (nombre de host, puerto); // conectar el servidor FTP ftpclient.login (nombre de usuario, contraseña); // Iniciar sesión en el servidor FTP int replycode = ftpclient.getReplyCode (); // si el servidor se registra correctamente si (! Ftpreply.ispositiveCompletion (respondCode)) {System.out.println ("Connect Faily ... Ftp Server:"+this.hostName+":"+this.port); } System.out.println ("Conecte Successfu ... FTP Server:"+this.hostName+":"+this.port); } catch (malformedurexception e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); }} / *** Cargar archivo* @Param PathName FTP Service Dirección de guardado* @param FileName FileName cargado a ftp* @param OriginFileName el nombre del archivo para estar cargado) InputStream InputStream = null; intente {System.out.println ("Iniciar archivo de carga"); inputStream = new FileInputStream (nuevo archivo (OriginFileName)); initftpClient (); ftpClient.setFileType (ftpclient.binary_file_type); CreatedIrecroty (rathName); ftpClient.MakedIrectory (rationName); ftpClient.ChangeWorkingDirectory (PathName); ftpclient.storeFile (nombre de archivo, inputStream); inputStream.close (); ftpClient.logout (); bandera = verdadero; System.out.println ("Cargar el archivo correctamente"); } catch (Exception e) {System.out.println ("Fallado de archivo de carga"); E.PrintStackTrace (); } Finalmente {if (ftpClient.isConnected ()) {try {ftpClient.disconnect (); } catch (ioException e) {E.PrintStackTrace (); }} if (null! = inputStream) {try {inputStream.close (); } catch (ioException e) {E.PrintStackTrace (); }}} return true; } / *** Cargar archivo* @Param PathName FTP Service Dirección de guardar* @param Nombre del archivo de nombre de archivo Subido a ftp* @param InputStream Input File Stream* @Return* / public boolean uploadFile (string pathName, string fileNeName, inputStream InputStream) {Boolean Flag = False; intente {System.out.println ("Iniciar archivo de carga"); initftpClient (); ftpClient.setFileType (ftpclient.binary_file_type); CreatedIrecroty (rathName); ftpClient.MakedIrectory (rationName); ftpClient.ChangeWorkingDirectory (PathName); ftpclient.storeFile (nombre de archivo, inputStream); inputStream.close (); ftpClient.logout (); bandera = verdadero; System.out.println ("Cargar el archivo correctamente"); } catch (Exception e) {System.out.println ("Fallado de archivo de carga"); E.PrintStackTrace (); } Finalmente {if (ftpClient.isConnected ()) {try {ftpClient.disconnect (); } catch (ioException e) {E.PrintStackTrace (); }} if (null! = inputStream) {try {inputStream.close (); } catch (ioException e) {E.PrintStackTrace (); }} return verdadero; } // Cambiar la ruta del directorio public Boolean ChangeWorkingDirectory (directorio de cadenas) {boolean flag = true; intente {flag = ftpClient.ChangeWorkingDirectory (directorio); if (flag) {System.out.println ("Ingrese la carpeta" + directorio + "éxito!"); } else {System.out.println ("Ingrese la carpeta" + directorio + "fallado! Comience a crear la carpeta"); }} catch (ioException IOE) {ioe.printstackTrace (); } Bandera de retorno; } // Cree un archivo de directorio de múltiples capas. Si hay un servidor FTP, no se creará. Si no hay, crear público booleano creado aRecroty (string remoto) lanza ioexception {boolean striture = true; Directorio de cadena = remoto + "/"; // Si el directorio remoto no existe, cree un directorio de servidor remoto recursivamente if (! Directory.equalSignorecase ("/") &&! ChangeWorkingDirectory (new String (Directory))) {int inicio = 0; int end = 0; if (directorio.startswith ("/")) {start = 1; } else {inicio = 0; } end = Directory.IndexOf ("/", inicio); Ruta de cadena = ""; Rutas de cadena = ""; while (true) {String subdirectory = new String (remotos.substring (inicio, final) .getBytes ("GBK"), "ISO-8859-1"); ruta = ruta + "/" + subdirectorio; if (! ExistFile (Path)) {if (MakedIrectory (subdirectory)) {ChangeWorkingDirectory (subdirectory); } else {System.out.println ("Crear directorio [" + subdirectorio + "] fallido"); ChangeWorkingDirectory (subdirectorio); }} else {ChangeWorkingDirectory (subdirectorio); } rutas = rutas + "/" + subdirectorio; inicio = final + 1; end = directorio.IndexOf ("/", inicio); // verifique si todos los directorios se han creado si (end <= inicio) {break; }}} return éxito; } // Determine si el archivo del servidor FTP existe public Boolean ExistFile (String Path) lanza IOException {Boolean Flag = false; Ftpfile [] ftpfileARR = ftpclient.listfiles (ruta); if (ftpfilearr.length> 0) {flag = true; } Bandera de retorno; } // crear directorio public boolean Makedirectory (String Dir) {Boolean Flag = True; intente {flag = ftpClient.MakedIrectory (dir); if (flag) {System.out.println ("Crear carpeta" + Dir + "éxito!"); } else {System.out.println ("Crear carpeta" + Dir + "falló!"); }} catch (Exception e) {E.PrintStackTrace (); } Bandera de retorno; } / ** * Descargar archivo * * @Param Directorio de archivos de servidor FTP FTP * * @param Nombre del archivo de nombre de archivo * * @param Localpath Path después de descargar * * @return * / public boolean downloadfile (string pathname, string fileName, string localpath) {boolean flag = false; OutputStream OS = NULL; intente {System.out.println ("Iniciar archivo de descarga"); initftpClient (); // cambia el directorio FTP ftpclient.changeworkingDirectory (rathName); Ftpfile [] ftpfiles = ftpClient.listFiles (); for (archivo ftpfile: ftpfiles) {if (filename.equalSignorEcase (file.getName ())) {archivo localFile = new File (localpath + "/" + file.getName ()); OS = nuevo FileOutputStream (LocalFile); ftpClient.retrieveFile (file.getName (), OS); os.close (); }} ftpClient.logout (); bandera = verdadero; System.out.println ("Descargar archivo con éxito"); } catch (Exception e) {System.out.println ("Descargar el archivo fallido"); E.PrintStackTrace (); } Finalmente {if (ftpClient.isConnected ()) {try {ftpClient.disconnect (); } catch (ioException e) {E.PrintStackTrace (); }} if (null! = os) {try {os.close (); } catch (ioException e) {E.PrintStackTrace (); }}} Bandera de retorno; } / ** * Eliminar el archivo * * @param PathName FTP Server guarda el directorio * * @param nombre de archivo El nombre del archivo se eliminará * * * @return * / public boolean deletefile (string pathname, string fileName) {boolean flag = false; intente {System.out.println ("iniciar el archivo de eliminación"); initftpClient (); // cambia el directorio FTP ftpclient.changeworkingDirectory (rathName); ftpclient.dele (nombre de archivo); ftpClient.logout (); bandera = verdadero; System.out.println ("Eliminar el archivo con éxito"); } catch (Exception e) {System.out.println ("Eliminar el archivo fallido"); E.PrintStackTrace (); } Finalmente {if (ftpClient.isConnected ()) {try {ftpClient.disconnect (); } catch (ioException e) {E.PrintStackTrace (); }} Bandera de retorno; } public static void main (string [] args) {ftputils ftp = new ftputils (); //ftp.uploadfile("ftpfile/data "," 123.docx "," e: //123.docx "); //ftp.downloadfile("ftpfile/data "," 123.docx "," f: // "); ftp.deleteFile ("ftpfile/data", "123.docx"); System.out.println ("OK"); }} Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.