Use a ferramenta Apache FTP para fazer upload, baixar e excluir arquivos, como segue
1. Faça o download do pacote JAR correspondente
Commons-Net-1.4.1.jar
2. O código de implementação é o seguinte:
classe pública ftputils {// endereço do servidor ftp public string hostName = "192.168.1.249"; // Número da porta do servidor FTP Padrão para 21 porta inteira pública = 21; // FTP Login Conta Public String userName = "root"; // FTP Login Senha public String senha = "123"; public ftpClient ftpClient = null; / *** inicialize o servidor ftp*/ public void initftpClient () {ftpClient = new ftpClient (); ftpClient.SetControlencoding ("UTF-8"); tente {system.out.println ("conectando ... servidor ftp:"+this.hostname+":"+this.port); ftpClient.Connect (nome do host, porta); // conectar o servidor FTP ftpclient.login (nome de usuário, senha); // Faça login no servidor FTP int ResponderCode = ftpClient.getReplyCode (); // se o servidor está logado com sucesso se (! Ftpreply.ispositiveCeliction (ResponderCode)) {System.out.println ("Connect Faily ... FTP Server:"+this.hostname+":"+this.port); } System.out.println ("Connect successfu ... FTP Server:"+this.hostname+":"+this.port); } catch (malformEdurlexception e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }} / *** Arquivo de upload* @Param PathName FTP Salvar endereço* @Param FileName FileName Carregado para ftp* @param OriginFileName O nome do arquivo a ser carregado (endereço absoluto)** @return* / public boolean uploadfile (string PathName, string filenMe; InputStream inputStream = null; tente {System.out.println ("Iniciar o arquivo de upload"); inputStream = new FileInputStream (novo arquivo (OriginFileName)); initftpClient (); ftpClient.SetFileType (ftpClient.binary_file_type); CreatedIReCroty (Pathname); ftpClient.Makedirectory (PathName); ftpClient.ChangeWorkingDirectory (PathName); ftpClient.storeFile (nome do arquivo, inputStream); inputStream.close (); ftpClient.logout (); bandeira = true; System.out.println ("Faça o upload de arquivo com sucesso"); } catch (Exceção e) {System.out.println ("Falha no arquivo de upload"); 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 (); }}} retorna true; } / *** Arquivo de upload* @param PathName FTP Salvar endereço* @Param FileName Name Nome do arquivo Carregado para FTP* @param inputStream FreeR de arquivo de entrada* @return* / public boolean uploadfile (string pathname, string filename, inputStream inputStream) {bands boolean = false; tente {System.out.println ("Iniciar o arquivo de upload"); initftpClient (); ftpClient.SetFileType (ftpClient.binary_file_type); CreatedIReCroty (Pathname); ftpClient.Makedirectory (PathName); ftpClient.ChangeWorkingDirectory (PathName); ftpClient.storeFile (nome do arquivo, inputStream); inputStream.close (); ftpClient.logout (); bandeira = true; System.out.println ("Faça o upload de arquivo com sucesso"); } catch (Exceção e) {System.out.println ("Falha no arquivo de upload"); 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 (); }} retornar true; } // altere o caminho do diretório Public boolean ChangeworkingDirectory (diretório de string) {bandeira booleana = true; tente {flag = ftpclient.ChangeWorkingDirectory (diretório); if (flag) {System.out.println ("Enter a pasta" + diretório + "sucesso!"); } else {System.out.println ("Digite a pasta" + diretório + "falhou! Comece a criar a pasta"); }} catch (ioexception ioe) {ioe.printStackTrace (); } retornar sinalizador; } // Crie um arquivo de diretório de várias camadas. Se houver um servidor FTP, ele não será criado. Se não houver, crie public boolean CreateDirecroty (String remoto) lança ioexception {boolean suced = true; Diretório de string = remoto + "/"; // Se o diretório remoto não existir, crie um diretório de servidor remoto recursivamente se (! Diretório.equalsignorecase ("/") &&! AlterewworkingDirectory (new string (diretório))) {int start = 0; int end = 0; if (diretório.startswith ("/")) {start = 1; } else {start = 0; } end = Directory.indexof ("/", Start); String path = ""; String Paths = ""; while (true) {String subdirectory = new String (remote.substring (start, end) .getBytes ("gbk"), "ISO-8859-1"); caminho = caminho + "/" + subdiretório; if (! existfile (path)) {if (makesirectory (subdirectory)) {changeworkingDirectory (subdirectory); } else {System.out.println ("Criar diretório [" + subdirectory + "] falhou"); ChangeWorkingDirectory (subdiretório); }} else {ChangeWorkingDirectory (subdirectory); } caminhos = caminhos + "/" + subdirectory; start = end + 1; end = diretório.indexof ("/", start); // Verifique se todos os diretórios foram criados se (end <= start) {break; }}} retornar sucesso; } // Determine se o arquivo do servidor FTP existe public boolean existfile (caminho da string) lança IoException {boolean sinalizador = false; Ftpfile [] ftpFilearr = ftpClient.listfiles (caminho); if (ftpfilearr.length> 0) {flag = true; } retornar sinalizador; } // Crie diretório public boolean makesirectory (string dir) {bandeira booleana = true; tente {flag = ftpclient.Makedirectory (dir); if (flag) {System.out.println ("Criar pasta" + dir + "sucesso!"); } else {System.out.println ("Criar pasta" + dir + "falhou!"); }} catch (Exceção e) {e.printStackTrace (); } retornar sinalizador; } / ** * Download Arquivo * * @Param PathName FTP Diretório de arquivos do servidor * * @param FileName Nome do arquivo * * @Param LocalPath File Path Após o download * * @return * / public boolean DownloadFile (string pathname, string filename, string localath) {sinalizador boolean = false; OutputStream OS = NULL; tente {System.out.println ("Iniciar o arquivo de download"); initftpClient (); // Alterne o diretório ftp ftpclient.ChangeWorkingDirectory (PathName); Ftpfile [] ftpfiles = ftpClient.listfiles (); para (arquivo ftpfile: ftpfiles) {if (filename.equalsignorecase (file.getName ())) {arquivo localfile = new File (localPath + "/" + file.getName ()); OS = new FileOutputStream (LocalFile); ftpClient.retrievefile (file.getName (), OS); os.close (); }} ftpClient.logout (); bandeira = true; System.out.println ("Download File com sucesso"); } catch (Exceção e) {System.out.println ("Falha no arquivo de download"); E.PrintStackTrace (); } finalmente {if (ftpClient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioexception e) {e.printStackTrace (); }} if (null! = os) {tente {os.close (); } catch (ioexception e) {e.printStackTrace (); }}} retornar sinalizador; } / ** * Exclua o arquivo * * @param pathname ftp servidor salva o diretório * * @param fileName O nome do arquivo a ser excluído * * @return * / public boolean DeleteFile (nome do caminho da string, nome do arquivo de string) {Boolean Flag = false; tente {System.out.println ("Iniciar o arquivo excluir"); initftpClient (); // Alterne o diretório ftp ftpclient.ChangeWorkingDirectory (PathName); ftpClient.dele (nome do arquivo); ftpClient.logout (); bandeira = true; System.out.println ("Excluir arquivo com sucesso"); } catch (Exceção e) {System.out.println ("Excluir arquivo falhado"); E.PrintStackTrace (); } finalmente {if (ftpClient.isconnected ()) {try {ftpclient.disconnect (); } catch (ioexception e) {e.printStackTrace (); }} retornar sinalizador; } 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/dados", "123.docx"); System.out.println ("ok"); }} O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.