国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

techstay / 3713人閱讀

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

寫在前面

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

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

這個jar包用來設置編碼,經過測試,不加也可用

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;
    }
注意:獲取遠程文件目錄,上傳和下載方法基于登陸方法
2.2 獲取遠程文件目錄
    /**
     * 獲取ftp某一文件(路徑)下的文件名字,用于查看文件列表
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotedir 遠程地址目錄
     * @return
     */
    public boolean getFilesName(String ip,int port, String name, String pwd, String remotedir) {
        try {
            if(!login(ip, port, name, pwd)){
                return false;
            }
            //獲取ftp里面,指定文件夾 里面的文件名字,存入數組中
            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 遠程地址文件路徑
     * @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();
        }
    }
    
    /**
     * 上傳文件的第二種方法,優化了傳輸速度
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠程地址文件路徑
     * @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 遠程地址文件路徑
     * @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();
        }
    }
    
    /**
     * 下載文件的第二種方法,優化了傳輸速度
     * @param ip
     * @param port
     * @param name
     * @param pwd
     * @param remotepath 遠程地址文件路徑
     * @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 源碼

當然上面代碼只是重要的部分,如果有問題可去github自行下載 charmsongo

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72614.html

相關文章

  • 【譯】PHP:40+開發工具推薦

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

    dreambei 評論0 收藏0
  • Windows平臺后端開發環境神器Laragon——裂墻推薦

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

    CoderDock 評論0 收藏0
  • Windows平臺后端開發環境神器Laragon——裂墻推薦

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

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

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

    K_B_Z 評論0 收藏0

發表評論

0條評論

techstay

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<