java操作FTP,实现文件上传下载删除操作

上传文件到FTP服务器:

/** 
     * Description: 向FTP服务器上传文件 
     * @param url FTP服务器hostname 
     * @param port FTP服务器端口,如果默认端口请写-1 
     * @param username FTP登录账号 
     * @param password FTP登录密码 
     * @param path FTP服务器保存目录 
     * @param filename 上传到FTP服务器上的文件名 
     * @param input 输入流 
     * @return 成功返回true,否则返回false 
     */  
    public static boolean uploadFile(String url, int port, String username, String password, String path,  
        String filename, InputStream input)  
    {  
        boolean success = false;  
        FTPClient ftp = new FTPClient();  
        try  
        {  
            int reply;  
              
            // 连接FTP服务器  
            if (port > -1)  
            {  
                ftp.connect(url, port);  
            }  
            else  
            {  
                ftp.connect(url);  
            }  
              
            // 登录FTP  
            ftp.login(username, password);  
            reply = ftp.getReplyCode();  
            if (!FTPReply.isPositiveCompletion(reply))  
            {  
                ftp.disconnect();  
                return success;  
            }  
            ftp.changeWorkingDirectory(path);  
            ftp.storeFile(filename, input);  
              
            input.close();  
            ftp.logout();  
            success = true;  
        }  
        catch (IOException e)  
        {  
            success = false;  
            logger.error(EXCEPTION_NAME, e);  
        }  
        finally  
        {  
            if (ftp.isConnected())  
            {  
                try  
                {  
                    ftp.disconnect();  
                }  
                catch (IOException e)  
                {  
                    logger.error(EXCEPTION_NAME, e);  
                }  
            }  
        }  
        return success;  
    } 

从FTP服务器下载文件:

/** 
     * Description: 从FTP服务器下载文件 
     * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔红保(cuihongbao@d-heaven.com)创建 
     * @param url FTP服务器hostname 
     * @param port FTP服务器端口 
     * @param username FTP登录账号 
     * @param password FTP登录密码 
     * @param remotePath FTP服务器上的相对路径 
     * @param fileName 要下载的文件名 
     * @param localPath 下载后保存到本地的路径 
     * @return 
     */  
    public static boolean downloadFile(String url, int port, String username, String password, String remotePath,  
        String fileName, String localPath)  
    {  
        boolean success = false;  
        FTPClient ftp = new FTPClient();  
        try  
        {  
            int reply;  
              
            // 连接FTP服务器  
            if (port > -1)  
            {  
                ftp.connect(url, port);  
            }  
            else  
            {  
                ftp.connect(url);  
            }  
              
            ftp.login(username, password);//登录  
            reply = ftp.getReplyCode();  
            if (!FTPReply.isPositiveCompletion(reply))  
            {  
                ftp.disconnect();  
                return success;  
            }  
            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();  
            success = true;  
        }  
        catch (IOException e)  
        {  
            logger.error(EXCEPTION_NAME, e);  
        }  
        finally  
        {  
            if (ftp.isConnected())  
            {  
                try  
                {  
                    ftp.disconnect();  
                }  
                catch (IOException e)  
                {  
                    logger.error(EXCEPTION_NAME, e);  
                }  
            }  
        }  
        return success;  
    }  

删除FTP服务器上的文件:

/** 
     * <删除FTP上的文件> 
     * <远程删除FTP服务器上的录音文件> 
     * @param url FTP服务器IP地址 
     * @param port FTP服务器端口 
     * @param username FTP服务器登录名 
     * @param password FTP服务器密码 
     * @param remotePath 远程文件路径 
     * @param fileName 待删除的文件名 
     * @return 
     * @see [类、类#方法、类#成员] 
     */  
    public static boolean deleteFtpFile(String url, int port, String username, String password, String remotePath,  
        String fileName)  
    {  
        boolean success = false;  
        FTPClient ftp = new FTPClient();  
        try  
        {  
            int reply;  
              
            // 连接FTP服务器  
            if (port > -1)  
            {  
                ftp.connect(url, port);  
            }  
            else  
            {  
                ftp.connect(url);  
            }  
              
            // 登录  
            ftp.login(username, password);  
            reply = ftp.getReplyCode();  
            if (!FTPReply.isPositiveCompletion(reply))  
            {  
                ftp.disconnect();  
                return success;  
            }  
              
            // 转移到FTP服务器目录  
            ftp.changeWorkingDirectory(remotePath);  
            success = ftp.deleteFile(remotePath + "/" + fileName);  
            ftp.logout();  
        }  
        catch (IOException e)  
        {  
            logger.error(EXCEPTION_NAME, e);  
            success = false;  
        }  
        finally  
        {  
            if (ftp.isConnected())  
            {  
                try  
                {  
                    ftp.disconnect();  
                }  
                catch (IOException e)  
                {  
                    logger.error(EXCEPTION_NAME, e);  
                }  
            }  
        }  
        return success;  
    }  

所需的jar包:

commons-net-2.0.jar 

本文转自:http://wenkaixuan.iteye.com/blog/1739344

原文地址:https://www.cnblogs.com/dreammyle/p/4095982.html