成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

推薦一個java操作ftp的工具類

techstay / 3806人閱讀

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

寫在前面

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

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

這個jar包用來設(shè)置編碼,經(jīng)過測試,不加也可用

2 工具類中主要方法 2.1 登陸ftp
    /**
     * 驗證登錄
     * @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)然上面代碼只是重要的部分,如果有問題可去github自行下載 charmsongo

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

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/72614.html

相關(guān)文章

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

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

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

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

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

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

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

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

    K_B_Z 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<