<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 閱讀(414) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 国产精品青草视频免费播放| 亚洲国产熟亚洲女视频| 高h视频在线免费观看| 成人免费看片又大又黄| 亚洲人AV在线无码影院观看| 在线看片无码永久免费视频| wwwxxx亚洲| 精品少妇人妻AV免费久久洗澡| 亚洲精品无码一区二区| 国产成人aaa在线视频免费观看 | 亚洲女人影院想要爱| 久久WWW免费人成人片| 亚洲熟妇AV乱码在线观看| 国产精品久久久久影院免费| 曰批免费视频播放在线看片二| 亚洲精品国产精品乱码不卡| 中国国产高清免费av片| 99久久亚洲综合精品成人网| 午夜福利不卡片在线播放免费| 亚洲精品一卡2卡3卡四卡乱码| www亚洲一级视频com| 无码少妇精品一区二区免费动态| 亚洲蜜芽在线精品一区| 免费黄色一级毛片| 久久精品成人免费观看97| 亚洲美女大bbbbbbbbb| 日本午夜免费福利视频| 男女一边摸一边做爽的免费视频 | 国产亚洲精品仙踪林在线播放| 国产91精品一区二区麻豆亚洲 | 亚洲国产精品热久久| 成人片黄网站A毛片免费| 一边摸一边桶一边脱免费视频| 亚洲AV无码一区二区乱子伦| 免费av欧美国产在钱| 久久久久久毛片免费看| 亚洲AV无码精品蜜桃| 亚洲中文字幕成人在线| 人成午夜免费视频在线观看| 日日摸夜夜添夜夜免费视频| 亚洲毛片在线免费观看|