<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    敬的世界

    常用鏈接

    統計

    最新評論

    JAVA中使用FTPClient上傳下載(轉載)

    轉載地址: http://blog.csdn.net/hbcui1984/archive/2008/07/27/2720204.aspx

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

    一、上傳文件

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

    1. /**
    2. * Description: 向FTP服務器上傳文件
    3. * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創建
    4. * @param url FTP服務器hostname
    5. * @param port FTP服務器端口
    6. * @param username FTP登錄賬號
    7. * @param password FTP登錄密碼
    8. * @param path FTP服務器保存目錄
    9. * @param filename 上傳到FTP服務器上的文件名
    10. * @param input 輸入流
    11. * @return 成功返回true,否則返回false
    12. */ ??
    13. public static boolean uploadFile(String url, int port,String username, String password, String path, String filename, InputStream input) { ??
    14. ???? boolean success = false ; ??
    15. ???? FTPClient ftp = new FTPClient(); ??
    16. ???? try { ??
    17. ???????? int reply; ??
    18. ???????? ftp.connect(url, port); //連接FTP服務器 ??
    19. ???????? //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器 ??
    20. ???????? ftp.login(username, password); //登錄 ??
    21. ???????? reply = ftp.getReplyCode(); ??
    22. ???????? if (!FTPReply.isPositiveCompletion(reply)) { ??
    23. ???????????? ftp.disconnect(); ??
    24. ???????????? return success; ??
    25. ???????? } ??
    26. ???????? ftp.changeWorkingDirectory(path); ??
    27. ???????? ftp.storeFile(filename, input);????????? ??
    28. ???????? ??
    29. ???????? input.close(); ??
    30. ???????? ftp.logout(); ??
    31. ???????? success = true ; ??
    32. ???? } catch (IOException e) { ??
    33. ???????? e.printStackTrace(); ??
    34. ???? } finally { ??
    35. ???????? if (ftp.isConnected()) { ??
    36. ???????????? try { ??
    37. ???????????????? ftp.disconnect(); ??
    38. ???????????? } catch (IOException ioe) { ??
    39. ???????????? } ??
    40. ???????? } ??
    41. ???? } ??
    42. ???? return success; ??
    43. }

    下面我們寫兩個小例子:

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

    1. @Test ??
    2. public void testUpLoadFromDisk(){ ??
    3. ???? try { ??
    4. ???????? FileInputStream in= new FileInputStream( new File( "D:/test.txt" )); ??
    5. ???????? boolean flag = uploadFile( "127.0.0.1" , 21 , "test" , "test" , "D:/ftp" , "test.txt" , in); ??
    6. ???????? System.out.println(flag); ??
    7. ???? } catch (FileNotFoundException e) { ??
    8. ???????? e.printStackTrace(); ??
    9. ???? } ??
    10. }

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

    1. @Test ??
    2. public void testUpLoadFromString(){ ??
    3. ???? try { ??
    4. ???????? InputStream input = new ByteArrayInputStream( "test ftp" .getBytes( "utf-8" )); ??
    5. ???????? boolean flag = uploadFile( "127.0.0.1" , 21 , "test" , "test" , "D:/ftp" , "test.txt" , input); ??
    6. ???????? System.out.println(flag); ??
    7. ???? } catch (UnsupportedEncodingException e) { ??
    8. ???????? e.printStackTrace(); ??
    9. ???? } ??
    10. }

    二、下載文件

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

    1. /**
    2. * Description: 從FTP服務器下載文件
    3. * @Version1.0 Jul 27, 2008 5:32:36 PM by 崔紅保(cuihongbao@d-heaven.com)創建
    4. * @param url FTP服務器hostname
    5. * @param port FTP服務器端口
    6. * @param username FTP登錄賬號
    7. * @param password FTP登錄密碼
    8. * @param remotePath FTP服務器上的相對路徑
    9. * @param fileName 要下載的文件名
    10. * @param localPath 下載后保存到本地的路徑
    11. * @return
    12. */ ??
    13. public static boolean downFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) { ??
    14. ???? boolean success = false ; ??
    15. ???? FTPClient ftp = new FTPClient(); ??
    16. ???? try { ??
    17. ???????? int reply; ??
    18. ???????? ftp.connect(url, port); ??
    19. ???????? //如果采用默認端口,可以使用ftp.connect(url)的方式直接連接FTP服務器 ??
    20. ???????? ftp.login(username, password); //登錄 ??
    21. ???????? reply = ftp.getReplyCode(); ??
    22. ???????? if (!FTPReply.isPositiveCompletion(reply)) { ??
    23. ???????????? ftp.disconnect(); ??
    24. ???????????? return success; ??
    25. ???????? } ??
    26. ???????? ftp.changeWorkingDirectory(remotePath); //轉移到FTP服務器目錄 ??
    27. ???????? FTPFile[] fs = ftp.listFiles(); ??
    28. ???????? for (FTPFile ff:fs){ ??
    29. ???????????? if (ff.getName().equals(fileName)){ ??
    30. ???????????????? File localFile = new File(localPath+ "/" +ff.getName()); ??
    31. ???????????????? ??
    32. ???????????????? OutputStream is = new FileOutputStream(localFile); ??
    33. ???????????????? ftp.retrieveFile(ff.getName(), is); ??
    34. ???????????????? is.close(); ??
    35. ???????????? } ??
    36. ???????? } ??
    37. ???????? ??
    38. ???????? ftp.logout(); ??
    39. ???????? success = true ; ??
    40. ???? } catch (IOException e) { ??
    41. ???????? e.printStackTrace(); ??
    42. ???? } finally { ??
    43. ???????? if (ftp.isConnected()) { ??
    44. ???????????? try { ??
    45. ???????????????? ftp.disconnect(); ??
    46. ???????????? } catch (IOException ioe) { ??
    47. ???????????? } ??
    48. ???????? } ??
    49. ???? }???
    50. ???? return success; ??
    51. }

    posted on 2008-10-05 16:02 picture talk 閱讀(418) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 噜噜噜亚洲色成人网站| 亚洲香蕉免费有线视频| 午夜色a大片在线观看免费| 中文字幕乱码免费视频| 美女被免费视频网站a国产| 亚洲国产精品毛片av不卡在线 | 亚洲高清一区二区三区电影| 亚洲欧美成人一区二区三区| 国产高清对白在线观看免费91| 无码国产精品一区二区免费3p| 成年人视频免费在线观看| 亚洲国产成人精品电影| 久久无码av亚洲精品色午夜| a色毛片免费视频| 免费鲁丝片一级观看| 国产成人精品日本亚洲语音| 久章草在线精品视频免费观看| 免费一级肉体全黄毛片| 亚洲欧洲精品国产区| 成人影片一区免费观看| 亚洲av日韩av欧v在线天堂| 亚洲国产av高清无码| 成年女人午夜毛片免费视频| 久久久久久久久亚洲 | 狠狠色伊人亚洲综合网站色| 国产黄片不卡免费| 亚洲AV午夜福利精品一区二区| 在线91精品亚洲网站精品成人| 亚洲综合亚洲综合网成人| 亚洲人成自拍网站在线观看| 亚洲AV中文无码乱人伦在线视色 | 无码国产精品一区二区免费16| 亚洲AV无码乱码在线观看代蜜桃| 一个人看的www免费视频在线观看| 又黄又爽无遮挡免费视频| 日批视频网址免费观看| 亚洲av无码不卡久久| 亚洲精品动漫人成3d在线| 亚洲中文精品久久久久久不卡| 91九色精品国产免费| 免费观看又污又黄在线观看|