成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

推薦一個(gè)java操作ftp的工具類

techstay / 3769人閱讀

摘要:寫在前面作為經(jīng)常使用電腦整理文件的童鞋,應(yīng)該都使用過(guò)從服務(wù)器上傳下載文件,那么今天就了解下如何通過(guò)程序操作服務(wù)的文件首先你要知道的,路徑,端口,有操作權(quán)限的賬號(hào)和密碼導(dǎo)入包這個(gè)包用來(lái)設(shè)置編碼,經(jīng)過(guò)測(cè)試,不加也可用工具類中主要方法登陸驗(yàn)證

寫在前面

作為經(jīng)常使用電腦整理文件的童鞋,應(yīng)該都使用過(guò)從ftp服務(wù)器上傳下載文件,那么今天就了解下如何通過(guò)java程序操作ftp服務(wù)的文件

首先你要知道ftp的ip,路徑,端口,有操作權(quán)限的賬號(hào)和密碼
1 導(dǎo)入jar包
 commons-net-3.6.jar

這個(gè)jar包用來(lái)設(shè)置編碼,經(jīng)過(guò)測(cè)試,不加也可用

2 工具類中主要方法 2.1 登陸ftp
    /**
     * 驗(yàn)證登錄
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @return
     */
    public boolean login(String ip,int port, String name, String pwd) {
        try {
            ftp = new FTPClient();
            ftp.connect(ip, port);
            System.out.println(ftp.login(name, pwd));
            if(!ftp.login(name, pwd)){
                return false;
            }
            ftp.setCharset(Charset.forName("UTF-8"));
            ftp.setControlEncoding("UTF-8");

        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
注意:獲取遠(yuǎn)程文件目錄,上傳和下載方法基于登陸方法
2.2 獲取遠(yuǎn)程文件目錄
    /**
     * 獲取ftp某一文件(路徑)下的文件名字,用于查看文件列表
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotedir 遠(yuǎn)程地址目錄
     * @return
     */
    public boolean getFilesName(String ip,int port, String name, String pwd, String remotedir) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            //獲取ftp里面,指定文件夾 里面的文件名字,存入數(shù)組中
            FTPFile[] files = ftp.listFiles(remotedir);
            //打印出ftp里面,指定文件夾 里面的文件名字
            for (int i = 0; i < files.length; i++) {
                System.out.println(files[i].getName());
            }
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }finally{
            this.close();
        }
        return true;
    }
2.3 上傳文件
    /**
     * 上傳文件 方法一
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠(yuǎn)程地址文件路徑
     * @param localpath 本地文件路徑
     * @return
     */
    public boolean putFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            //將本地的 localpath 文件上傳到ftp的根目錄文件夾下面,并重命名為 remotepath中的名字
             return ftp.storeFile(remotepath, new FileInputStream(new File(localpath)));
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }finally{
            this.close();
        }
    }
    
    /**
     * 上傳文件的第二種方法,優(yōu)化了傳輸速度
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠(yuǎn)程地址文件路徑
     * @param localpath 本地文件路徑
     * @return
     */
    public boolean putFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            os = ftp.storeFileStream(remotepath);
            fis = new FileInputStream(new File(localpath));
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = fis.read(b)) != -1) {
                os.write(b,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }finally {
            this.close();
        }
        return true;
    }
2.4 下載文件
    /**
     * 下載文件 方法一
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠(yuǎn)程地址文件路徑
     * @param localpath 本地文件路徑
     * @return
     */
    public boolean getFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            //將ftp資源中 remotepath 文件下載到本地目錄文件夾下面,并重命名為 localpath 中的名字
            return ftp.retrieveFile(remotepath, new FileOutputStream(new File(localpath)));
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }finally{
            this.close();
        }
    }
    
    /**
     * 下載文件的第二種方法,優(yōu)化了傳輸速度
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠(yuǎn)程地址文件路徑
     * @param localpath  本地文件路徑
     * @return
     */
    public boolean getFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            is = ftp.retrieveFileStream(remotepath);
            fos = new FileOutputStream(new File(localpath));
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = is.read(b)) != -1) {
                fos.write(b,0,len);
            }
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }finally {
            this.close();
        }
        return true;
    }
3 源碼

當(dāng)然上面代碼只是重要的部分,如果有問(wèn)題可去github自行下載 charmsongo

如果有什么更好的方法歡迎留言

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72614.html

相關(guān)文章

  • 【譯】PHP:40+開(kāi)發(fā)工具推薦

    摘要:今天,就為開(kāi)發(fā)者介紹個(gè)方便的工具。對(duì)開(kāi)發(fā)者來(lái)說(shuō),是一個(gè)非常有用的工具,它提供了超過(guò)個(gè)有用的函數(shù)。該工具檢查輸入源代碼和報(bào)告任何違反給定的標(biāo)準(zhǔn)??蚣苁且粋€(gè)開(kāi)發(fā)的工具。它側(cè)重于安全性和性能,絕對(duì)是最安全的開(kāi)發(fā)框架之一。 PHP是為Web開(kāi)發(fā)設(shè)計(jì)的服務(wù)器腳本語(yǔ)言,但也是一種通用的編程語(yǔ)言。超過(guò)2.4億個(gè)索引域使用PHP,包括很多重要的網(wǎng)站,例如Facebook、Digg和WordPress。...

    dreambei 評(píng)論0 收藏0
  • Windows平臺(tái)后端開(kāi)發(fā)環(huán)境神器Laragon——裂墻推薦

    摘要:是一個(gè)可移植,隔離,快速且功能強(qiáng)大的通用開(kāi)發(fā)環(huán)境,適用于,,,,,。每每這樣都絕望地將項(xiàng)目放到推薦的標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境上面跑,殺雞也用牛刀著實(shí)不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...

    CoderDock 評(píng)論0 收藏0
  • Windows平臺(tái)后端開(kāi)發(fā)環(huán)境神器Laragon——裂墻推薦!

    摘要:是一個(gè)可移植,隔離,快速且功能強(qiáng)大的通用開(kāi)發(fā)環(huán)境,適用于,,,,,。每每這樣都絕望地將項(xiàng)目放到推薦的標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境上面跑,殺雞也用牛刀著實(shí)不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...

    yanest 評(píng)論0 收藏0
  • java 導(dǎo)出 excel 最佳實(shí)踐,java 大文件 excel 避免OOM(內(nèi)存溢出) exce

    摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問(wèn)題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁(yè)面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見(jiàn)的需求。 最常見(jiàn)的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...

    K_B_Z 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<