最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用ftp上傳文件示例分享

 更新時間:2014年02月17日 14:19:18   作者:  
這篇文章主要介紹了java使用ftp上傳文件示例,需要的朋友可以參考下

復制代碼 代碼如下:

import java.io.ByteArrayInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.net.SocketException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import org.apache.commons.io.IOUtils; 
import org.apache.commons.net.ftp.FTPClient; 

/**
 * class name:FTPFileTransmit <BR>
 * class description: please write your description <BR>
 * Remark: <BR>
 * @version 1.00 2011-8-9
 */ 
public class FTPFileTransmit { 

    private String ftpPath; 
    private String ftpName; 
    private String ftpPassword; 
    private String ftpServerIP; 

    public FTPFileTransmit() { 
        this.ftpPath = "xxx/xxx/"; 
        this.ftpName = "name"; 
        this.ftpPassword = "pass"; 
        this.ftpServerIP = "192.168.0.xx"; 
    } 

     
    /**
     * Method name: saveInFTP <BR>
     * Description: 把文件存儲在FTP上 <BR>
     * Remark: <BR>
     * @param FolderName            示例"xxx/xxx/"
     * @param FileName              示例"thefilename"
     * @param data                  byte[]數(shù)組
     * @return  boolean<BR>
     */ 
    public boolean saveInFTP (String FolderName, String FileName, byte[] data) { 
        boolean flag = false; 

        // 創(chuàng)建FTP客戶端  
        FTPClient ftpClient = new FTPClient(); 
        // 輸入流用于讀取文件  
//      FileInputStream fis = null;  
        ByteArrayInputStream bis = null; 

        try { 
            // 如果FolderName 和 FileName都不符合基本要求, 那么就沒有必要進行ftp操作  
            if (FolderName != null 
                    && FolderName.compareTo("") != 0 
                    && FileName != null 
                    && FileName.compareTo("") != 0) { 

                // 建立FTP連接  
                ftpClient.connect(this.ftpServerIP); 

                // 如果登錄成功后, 才進行創(chuàng)建輸入流  
                if (ftpClient.login(this.ftpName, this.ftpPassword)) { 
//                  File srcClientFile = new File("C:/ParseXML.xml");  

                    // 實例化輸入流  
//                  fis = new FileInputStream(srcClientFile);  

                    if (ftpClient.changeWorkingDirectory(FolderName)) { 
                        // 將byte[]寫入到輸入流中, 實例化  
                        bis = new ByteArrayInputStream(data); 

                        // 設置緩沖  
                        ftpClient.setBufferSize(1024); 

                        // 設置文件類型(二進制類型)  
                        if (ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)) { 
                            flag = ftpClient.storeFile(FileName, bis); 
                        } 
                    } 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 關閉輸入流  
                IOUtils.closeQuietly(bis); 
                // 關閉連接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    /**
     * Method name: getFromFTP <BR>
     * Description: 從FTP上讀取文件 <BR>
     * Remark: <BR>
     * @return  boolean<BR>
     */ 
    public boolean getFromFTP () { 
        boolean flag = false; 

        // 創(chuàng)建FTP客戶端  
        FTPClient ftpClient = new FTPClient(); 
        // 輸出流用于輸出文件  
        FileOutputStream fos = null; 

        try { 
            // 建立FTP連接  
            ftpClient.connect(this.ftpServerIP); 
            // 如果登錄成功后, 才進行創(chuàng)建輸出流  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 
                // FTP文件  
                String distinationFile = "/name/xxx/xxx/xxx文件"; 
                // 實例化輸出流  
                fos = new FileOutputStream("C:/ParseXML_InFTP.xml"); 

                // 設置緩沖  
                ftpClient.setBufferSize(1024); 

                // 設置文件類型(二進制類型)  
                if (ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)) { 
                    ftpClient.retrieveFile(distinationFile, fos); 
                    flag = true; 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 關閉輸出流  
                IOUtils.closeQuietly(fos); 
                // 關閉連接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    public boolean createDirectory() { 
        boolean flag = false; 

        // 創(chuàng)建FTP客戶端  
        FTPClient ftpClient = new FTPClient(); 

        try { 
            // 建立FTP連接  
            ftpClient.connect(this.ftpServerIP); 
            // 如果登錄成功后, 才進行操作  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 

                // 切換文件路徑, 到FTP上的"NNDD3"文件夾下  
                if (this.ftpPath != null && this.ftpPath.compareTo("") != 0 
                        && ftpClient.changeWorkingDirectory(this.ftpPath)) { 
                    SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd"); 
                    String time = f.format(new Date()); 

                    String FolderName = time + "_ReTransmit"; 
                    ftpClient.makeDirectory(FolderName); 
                    flag = true; 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 關閉連接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    public String[] getAllFolderNames () { 
        // 創(chuàng)建FTP客戶端  
        FTPClient ftpClient = new FTPClient(); 

        try { 
            // 建立FTP連接  
            ftpClient.connect(this.ftpServerIP); 

            // 如果登錄成功后, 才進行操作  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 

                // 切換文件路徑, 到FTP上的"NNDD3"文件夾下  
                if (this.ftpPath != null && this.ftpPath.compareTo("") != 0 
                        && ftpClient.changeWorkingDirectory(this.ftpPath)) { 
                    // 將當前時間減去2天, 刪除的是前兩天的數(shù)據(jù)包  
                    String time = minusTime(); 

                    String[] allNames = ftpClient.listNames(); 

                    String[] temp = new String[allNames.length]; 
                    // 初始化數(shù)組  
                    for (int j = 0; j < allNames.length; j ++) { 
                        temp[j] = ""; 
                    } 

                    // 找出要刪除文件夾的名稱  
                    for (int i = 0; i < allNames.length; i ++) { 
                        if (allNames[i].substring(0, 8).compareTo(time) <= 0) { 
                            temp[i] = allNames[i]; 
                        } 
                    } 

                    return temp; 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                // 關閉連接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return null; 
    } 

    /**
     * 
     * Method name: minusTime <BR>
     * Description: 獲取錢兩天的時間,如2011-8-1的前兩天就是2011-7-30 <BR>
     * Remark: <BR>
     * @return  String<BR>
     */ 
    private String minusTime() { 
        SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");    
        Date d = new Date(); 
        String timeMinus2 = df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000));    
        return timeMinus2; 
    } 

    public static void main(String[] args) { 
        FTPFileTransmit ftpFileTransmit = new FTPFileTransmit(); 
        ftpFileTransmit.deleteFoldersInFTP(); 

//      boolean flag = ftpFileTransmit.createDirectory();  
//      if (flag) {  
//          System.out.println("****** FTP文件夾創(chuàng)建成功 ******");  
//      }  

//      String FolderName = ftpFileTransmit.ftpPath + "20110809_ReTransmit/";  
//      byte[] data = new byte[1024];  
//      for (int i = 0; i < data.length; i ++) {  
//          data[i] = 'a';  
//      }  
//      boolean flag = ftpFileTransmit.saveInFTP(FolderName, "2011080912345678" ,data);  
//      if (flag) {  
//          System.out.println("****** FTP文件夾創(chuàng)建成功 ******");  
//      }  
    } 
}

相關文章

  • 深入理解Java SpringCloud Ribbon 負載均衡

    深入理解Java SpringCloud Ribbon 負載均衡

    Ribbon是一個客戶端負載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。這篇文章主要介紹了SpringCloud Ribbon 負載均衡的實現(xiàn),感興趣的小伙伴們可以參考一下
    2021-09-09
  • Spring??AOP的兩種使用方法

    Spring??AOP的兩種使用方法

    這篇文章主要介紹了Spring?AOP的兩種使用方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Spring框架中Bean的三種配置和實例化方法總結

    Spring框架中Bean的三種配置和實例化方法總結

    在Spring框架中,Bean的配置和實例化是很重要的基礎內(nèi)容,掌握各種配置方式,才能靈活管理Bean對象,本文將全面介紹Bean的別名配置、作用范圍配置,以及構造器實例化、工廠實例化等方式
    2023-10-10
  • 面試官:詳細談談Java對象的4種引用方式

    面試官:詳細談談Java對象的4種引用方式

    這篇文章主要給大家介紹了java面試官常會問到的,關于Java對象的4種引用方式的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Idea打War包流程圖文教程

    Idea打War包流程圖文教程

    這篇文章主要給大家介紹了關于Idea打War包流程的相關資料,IDEA導出war包的方式與MyEclipse有一點不同,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Java銀行取錢線程安全問題實例分析

    Java銀行取錢線程安全問題實例分析

    這篇文章主要介紹了Java銀行取錢線程安全問題,結合具體實例形式分析了java使用線程操作模擬銀行取錢的相關安全問題,需要的朋友可以參考下
    2019-09-09
  • SpringCloud實現(xiàn)服務調(diào)用feign與熔斷hystrix和網(wǎng)關gateway詳細分析

    SpringCloud實現(xiàn)服務調(diào)用feign與熔斷hystrix和網(wǎng)關gateway詳細分析

    這篇文章主要介紹了SpringCloud實現(xiàn)服務調(diào)用feign與熔斷hystrix和網(wǎng)關gateway,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-04-04
  • 使用spring?jpa?如何給外鍵賦值

    使用spring?jpa?如何給外鍵賦值

    這篇文章主要介紹了使用spring?jpa?如何給外鍵賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • springcloud-feign調(diào)用報錯問題

    springcloud-feign調(diào)用報錯問題

    這篇文章主要介紹了springcloud-feign調(diào)用報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 解決SpringMVC攔截器path路徑的坑

    解決SpringMVC攔截器path路徑的坑

    這篇文章主要介紹了解決SpringMVC攔截器path路徑的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論

东城区| 沙湾县| 和静县| 密云县| 屯留县| 汉源县| 贺兰县| 东阿县| 通许县| 宁阳县| 青田县| 兴化市| 凤阳县| 晋宁县| 普宁市| 婺源县| 龙江县| 乌鲁木齐市| 崇礼县| 定西市| 镇安县| 剑河县| 会同县| 南皮县| 扎囊县| 无棣县| 通道| 阳东县| 德惠市| 雷波县| 常熟市| 乌兰察布市| 洪雅县| 九江县| 延长县| 延吉市| 曲水县| 泊头市| 宜丰县| 兴业县| 当雄县|