久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    JAVA中使用FTPClient實現文件上傳下載

     CevenCheng 2018-07-25

    在JAVA程序中,經常需要和FTP打交道,比如向FTP服務器上傳文件、下載文件,本文簡單介紹如何利用jakarta commons中的FTPClient(在commons-net包中)實現上傳下載文件。

    一、上傳文件

    原理就不介紹了,大家直接看代碼吧

    [Java]view plaincopyprint?

    /**

    * Description: 向FTP服務器上傳文件

    * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創建

    * @param url FTP服務器hostname

    * @param port FTP服務器端口

    * @param username FTP登錄賬號

    * @param password FTP登錄密碼

    * @param path FTP服務器保存目錄

    * @param filename 上傳到FTP服務器上的文件名

    * @param input 輸入流

    * @return 成功返回true,否則返回false

    */

    publicstaticbooleanuploadFile(String url,intport,String username, String password, String path, String filename, InputStream input) {

    booleansuccess =false;

    FTPClient ftp =newFTPClient();

    try{

    intreply;

    ftp.connect(url, port);//連接FTP服務器

    //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器

    ftp.login(username, password);//登錄

    reply = ftp.getReplyCode();

    if(!FTPReply.isPositiveCompletion(reply)) {

    ftp.disconnect();

    returnsuccess;

    }

    ftp.changeWorkingDirectory(path);

    ftp.storeFile(filename, input);

    input.close();

    ftp.logout();

    success =true;

    }catch(IOException e) {

    e.printStackTrace();

    }finally{

    if(ftp.isConnected()) {

    try{

    ftp.disconnect();

    }catch(IOException ioe) {

    }

    }

    }

    returnsuccess;

    }

    /**

    * Description: 向FTP服務器上傳文件

    * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創建

    * @param url FTP服務器hostname

    * @param port FTP服務器端口

    * @param username FTP登錄賬號

    * @param password FTP登錄密碼

    * @param path FTP服務器保存目錄

    * @param filename 上傳到FTP服務器上的文件名

    * @param input 輸入流

    * @return 成功返回true,否則返回false

    */

    public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {

    boolean success = false;

    FTPClient ftp = new FTPClient();

    try {

    int reply;

    ftp.connect(url, port);//連接FTP服務器

    //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器

    ftp.login(username, password);//登錄

    reply = ftp.getReplyCode();

    if (!FTPReply.isPositiveCompletion(reply)) {

    ftp.disconnect();

    return success;

    }

    ftp.changeWorkingDirectory(path);

    ftp.storeFile(filename, input);

    input.close();

    ftp.logout();

    success = true;

    } catch (IOException e) {

    e.printStackTrace();

    } finally {

    if (ftp.isConnected()) {

    try {

    ftp.disconnect();

    } catch (IOException ioe) {

    }

    }

    }

    return success;

    }

    下面我們寫兩個小例子:

    1.將本地文件上傳到FTP服務器上,代碼如下:

    [Java]view plaincopyprint?

    @Test

    publicvoidtestUpLoadFromDisk(){

    try{

    FileInputStream in=newFileInputStream(newFile("D:/test.txt"));

    booleanflag = uploadFile("127.0.0.1",21,"test","test","D:/ftp","test.txt", in);

    System.out.println(flag);

    }catch(FileNotFoundException e) {

    e.printStackTrace();

    }

    }

    @Test

    public void testUpLoadFromDisk(){

    try {

    FileInputStream in=new FileInputStream(new File("D:/test.txt"));

    boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in);

    System.out.println(flag);

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    }

    }

    2.在FTP服務器上生成一個文件,并將一個字符串寫入到該文件中

    [Java]view plaincopyprint?

    @Test

    publicvoidtestUpLoadFromString(){

    try{

    InputStream input =newByteArrayInputStream("test ftp".getBytes("utf-8"));

    booleanflag = uploadFile("127.0.0.1",21,"test","test","D:/ftp","test.txt", input);

    System.out.println(flag);

    }catch(UnsupportedEncodingException e) {

    e.printStackTrace();

    }

    }

    @Test

    public void testUpLoadFromString(){

    try {

    InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8"));

    boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input);

    System.out.println(flag);

    } catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    }

    }

    二、下載文件

    從FTP服務器下載文件的代碼也很簡單,參考如下:

    [Java]view plaincopyprint?

    /**

    * Description: 從FTP服務器下載文件

    * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔紅保(cuihongbao@d-heaven.com)創建

    * @param url FTP服務器hostname

    * @param port FTP服務器端口

    * @param username FTP登錄賬號

    * @param password FTP登錄密碼

    * @param remotePath FTP服務器上的相對路徑

    * @param fileName 要下載的文件名

    * @param localPath 下載后保存到本地的路徑

    * @return

    */

    publicstaticbooleandownFile(String url,intport,String username, String password, String remotePath,String fileName,String localPath) {

    booleansuccess =false;

    FTPClient ftp =newFTPClient();

    try{

    intreply;

    ftp.connect(url, port);

    //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器

    ftp.login(username, password);//登錄

    reply = ftp.getReplyCode();

    if(!FTPReply.isPositiveCompletion(reply)) {

    ftp.disconnect();

    returnsuccess;

    }

    ftp.changeWorkingDirectory(remotePath);//轉移到FTP服務器目錄

    FTPFile[] fs = ftp.listFiles();

    for(FTPFile ff:fs){

    if(ff.getName().equals(fileName)){

    File localFile =newFile(localPath+"/"+ff.getName());

    OutputStream is =newFileOutputStream(localFile);

    ftp.retrieveFile(ff.getName(), is);

    is.close();

    }

    }

    ftp.logout();

    success =true;

    }catch(IOException e) {

    e.printStackTrace();

    }finally{

    if(ftp.isConnected()) {

    try{

    ftp.disconnect();

    }catch(IOException ioe) {

    }

    }

    }

    returnsuccess;

    }

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 精品人妻伦九区久久AAA片| 播放灌醉水嫩大学生国内精品| 久久婷婷五月综合色国产免费观看 | 亚洲精品动漫免费二区| 国产不卡av一区二区| 午夜免费无码福利视频| 国产精品福利自产拍在线观看| 欧美日韩在线视频| 蜜芽久久人人超碰爱香蕉| 成人无码午夜在线观看| 一区二区三区无码免费看| 日韩人妻中文字幕精品| 精品国精品自拍自在线| 国产一区二区三区不卡在线看| 久久月本道色综合久久| 欧美性色欧美A在线图片| 国产精品99中文字幕| 无码天堂亚洲国产AV| 精品成人乱色一区二区| 蜜芽久久人人超碰爱香蕉 | 亚洲午夜理论无码电影| 亚洲AV无码乱码国产麻豆| 一区二区三区精品不卡| 国产精品无码无需播放器| 亚洲中文字幕国产综合| 亚洲欧洲日产国码AV天堂偷窥| 精品无码三级在线观看视频| 久久亚洲国产精品久久| 老子影院午夜精品无码| 九九在线精品国产| 欧美精品亚洲精品日韩专区| 成人拍拍拍无遮挡免费视频| 天干天干天啪啪夜爽爽AV| 亚洲香蕉网久久综合影视| 乱公和我做爽死我视频| 国产美女被遭强高潮免费一视频| 欧洲美熟女乱又伦AV影片| 亚洲中文精品一区二区| 国产精品久久久久久超碰| 午夜男女爽爽影院在线| 婷婷综合久久狠狠色成人网|