一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java使用ftp上傳文件示例分享

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

2019-11-06 11:44java教程網 JAVA教程

這篇文章主要介紹了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[]數組 
     * @return  boolean<BR> 
     */  
    public boolean saveInFTP (String FolderName, String FileName, byte[] data) {  
        boolean flag = false;  

        // 創建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);  

                // 如果登錄成功后, 才進行創建輸入流   
                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;  

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

        try {  
            // 建立FTP連接   
            ftpClient.connect(this.ftpServerIP);  
            // 如果登錄成功后, 才進行創建輸出流   
            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;  

        // 創建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 () {  
        // 創建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天, 刪除的是前兩天的數據包   
                    String time = minusTime();  

                    String[] allNames = ftpClient.listNames();  

                    String[] temp = new String[allNames.length];  
                    // 初始化數組   
                    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文件夾創建成功 ******");   
//      }   

//      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文件夾創建成功 ******");   
//      }   
    }  
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 星空无限传媒视频在线观看视频 | 91碰| 国产大秀视频一区二区三区 | 丝瓜视频成人在线观看 | 日本网 | 成人亚洲精品一区 | 国产在线影院 | 国色天香论坛社区在线视频 | 青青成人在线 | 成人1234 | 岛国虐乳紧缚媚药调教 | 九九精品视频一区二区三区 | 厨房play黄瓜进入 | 亚洲视频精选 | 日产精品一卡2卡三卡4乱码久久 | 天堂色| 91久久偷偷做嫩草影院免费看 | 高h巨肉play 高h短篇辣肉各种姿势bl | 亚洲精品高清中文字幕完整版 | 肉车各种play文r | 亚洲欧美精品久久 | 500第一精品 | 日本高清在线播放 | 精品免费国产一区二区三区 | 国产成人欧美 | 亚洲成人看片 | www四虎| 地址二地址三2021变更 | bl超h 高h 污肉快穿np | 国产精品夜色视频一级区 | 国内精品视频一区二区三区八戒 | 国内精品久久久久香蕉 | 亚洲欧美韩国日产综合在线 | 国产成人在线播放视频 | 四虎影视在线影院在线观看观看 | 日韩欧免费一区二区三区 | 夫妻性生活在线 | 亚洲欧美日韩另类精品一区二区三区 | 午夜伦理 第1页 | 美女gif跪趴式抽搐动态图 | 亚洲精品卡1卡二卡3卡四卡 |