您的位置:首页 > 编程语言 > Java开发

java代码实现从FTP服务器上拉取文件到本地

2014-05-27 18:31 786 查看
下面是我写的java代码,经测试,可以实现,仅供大家参考:

/*

*@ param  fileName 文件名称

*/

public static boolean downFile(String fileName) throws Exception{

        log.info(">>>>>>>>>>>文件下载开始,文件名称为 :"+fileName);

        boolean flag= false;

        FTPClient ftpClient = new FTPClient();

        try{

            int reply;

            ftpClient.connect(ip,port); //ip,port,username,password这些参数可以直接在相应的地方初始化。

            ftpClient.login(userName,passWord);

            reply = ftpClient.getReplyCode();

            if (!FTPReply.isPositiveCompletion(reply)) {

                ftpClient.disconnect();

                return flag;

            }

            ftpClient.changeWorkingDirectory(remotePath);//转移到指定路径

            FTPFile [] ftpFile = ftpClient.listFiles();

            for(FTPFile ff:ftpFile){

                if(ff.getName().equals(fileName)){

                    File localFile = new File(localPath+ff.getName());

                    OutputStream os = new FileOutputStream(localFile);

                    ftpClient.retrieveFile(ff.getName(), os);

                    os.close();

                }

            }

            ftpClient.logout();

            flag=true;

            log.info(">>>>>>>>>>>下载文件成功,存放路径为:"+localPath);

        } catch (ConnectException e){

            log.info(">>>>>>>>>>>>connect "+ip+" server  failed !");

            e.printStackTrace();

        }catch (IOException e){

            log.info(">>>>>>>>>>>>download file error !");

            e.printStackTrace();

        }finally{

            if (ftpClient.isConnected()) {

                try {

                    ftpClient.disconnect();

                } catch (IOException ioe) {

                    ioe.printStackTrace();

                }

            }

        }

        return flag;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp服务器 java