首页 > 编程 > Java > 正文

JAVA操作FTP

2019-11-08 01:02:01
字体:
来源:转载
供稿:网友
package com.rtsapp.naval.endlessexp.test;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import org.apache.log4j.Logger;import java.io.*;import static org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE;public class ftpTest {    /**     * 获取FTPClient     *     * @param url     @param port     @param username     @param passWord     @return     */   public static FTPClient getFtpCli(String url, int port, String username, String password) {        Logger logger = Logger.getLogger(ftpTest.class);        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();            ftp.setBufferSize(1024);//设置上传缓存大小            ftp.setControlEncoding("UTF-8");//设置编码            ftp.setFileType(BINARY_FILE_TYPE);//设置文件类型           if (!FTPReply.isPositiveCompletion(reply)) {                ftp.disconnect();            }        } catch (IOException e) {            logger.error(e);        }        return ftp;    }    public static boolean downloadFile(FTPClient ftp, String workPath, String fileName, String localPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            FTPFile[] files = ftp.listFiles();            for (FTPFile file : files) {                if (file.getName().equals(fileName)) {                    File localFile = new File(localPath + "/" + file.getName());                    OutputStream is = new FileOutputStream(localFile);                    ftp.retrieveFile(file.getName(), is);                    is.close();                }            }            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean uploadFile(FTPClient ftp, String workPath, String fileName, String localPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            FileInputStream input = new FileInputStream(new File(localPath + "/" + fileName));            ftp.storeFile(fileName, input);            input.close();            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean deleteFile(FTPClient ftp, String workPath, String fileName) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            ftp.deleteFile(workPath + "/" + fileName);            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean dirExist(FTPClient ftp, String workPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            String[] dirs = workPath.split("/");            String dirName = dirs[dirs.length - 1];            String path =workPath.substring(0, workPath.indexOf(dirName, workPath.length() - dirName.length()));            ftp.changeWorkingDirectory(path);//转移到FTP服务器目录            FTPFile[] files = ftp.listFiles();            for (FTPFile file : files) {                if (file.isDirectory()) {                    if (file.getName().equals(dirName)) {                        flag = true;                    }                }            }            ftp.logout();        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean mkdirs(FTPClient ftp, String workPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            ftp.makeDirectory("king/ling");            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static void main(String[] args) throws IOException {        FTPClient ftp = getFtpCli("123.59.67.107", 21, "h5web", "h5webpwd");       downloadFile(ftp, "/MilitaryWar", "index.html", "/Users/admin/Downloads/king");       uploadFile(ftp, "/MilitaryWar", "index2.html", "/Users/admin/Downloads/king");       deleteFile(ftp, "/MilitaryWar", "index2.html");        System.out.print(mkdirs(ftp, "/"));    }}package com.rtsapp.naval.endlessexp.test;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import org.apache.log4j.Logger;import java.io.*;import static org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE;public class ftpTest {    /**     * 获取FTPClient     *     * @param url     @param port     @param username     @param password     @return     */   public static FTPClient getFtpCli(String url, int port, String username, String password) {        Logger logger = Logger.getLogger(ftpTest.class);        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();            ftp.setBufferSize(1024);//设置上传缓存大小            ftp.setControlEncoding("UTF-8");//设置编码            ftp.setFileType(BINARY_FILE_TYPE);//设置文件类型           if (!FTPReply.isPositiveCompletion(reply)) {                ftp.disconnect();            }        } catch (IOException e) {            logger.error(e);        }        return ftp;    }    public static boolean downloadFile(FTPClient ftp, String workPath, String fileName, String localPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            FTPFile[] files = ftp.listFiles();            for (FTPFile file : files) {                if (file.getName().equals(fileName)) {                    File localFile = new File(localPath + "/" + file.getName());                    OutputStream is = new FileOutputStream(localFile);                    ftp.retrieveFile(file.getName(), is);                    is.close();                }            }            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean uploadFile(FTPClient ftp, String workPath, String fileName, String localPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            FileInputStream input = new FileInputStream(new File(localPath + "/" + fileName));            ftp.storeFile(fileName, input);            input.close();            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean deleteFile(FTPClient ftp, String workPath, String fileName) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            ftp.deleteFile(workPath + "/" + fileName);            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean dirExist(FTPClient ftp, String workPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            String[] dirs = workPath.split("/");            String dirName = dirs[dirs.length - 1];            String path =workPath.substring(0, workPath.indexOf(dirName, workPath.length() - dirName.length()));            ftp.changeWorkingDirectory(path);//转移到FTP服务器目录            FTPFile[] files = ftp.listFiles();            for (FTPFile file : files) {                if (file.isDirectory()) {                    if (file.getName().equals(dirName)) {                        flag = true;                    }                }            }            ftp.logout();        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static boolean mkdirs(FTPClient ftp, String workPath) {        Logger logger = Logger.getLogger(ftpTest.class);        boolean flag = false;        if (ftp == null) {            return flag;        }        try {            ftp.changeWorkingDirectory(workPath);//转移到FTP服务器目录            ftp.makeDirectory("king/ling");            ftp.logout();            flag = true;        } catch (IOException e) {            logger.error(e);        } finally {            if (ftp.isConnected()) {                try {                    ftp.disconnect();                } catch (IOException e) {                    logger.error(e);                }            }        }        return flag;    }    public static void main(String[] args) throws IOException {        FTPClient ftp = getFtpCli("127.0.0.1", 21, "username", "password");       downloadFile(ftp, "/MilitaryWar", "index.html", "/Users/admin/Downloads/king");       uploadFile(ftp, "/MilitaryWar", "index2.html", "/Users/admin/Downloads/king");       deleteFile(ftp, "/MilitaryWar", "index2.html");        System.out.print(mkdirs(ftp, "/"));    }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表