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

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

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

    敬的世界

    常用鏈接

    統(tǒng)計

    最新評論

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

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

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

    一、上傳文件

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

    1. /**
    2. * Description: 向FTP服務器上傳文件
    3. * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔紅保(cuihongbao@d-heaven.com)創(chuàng)建
    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)創(chuàng)建
    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)  編輯  收藏


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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲不卡在线观看| 亚洲黄色在线观看| 免费看美女午夜大片| 在线免费不卡视频| 亚洲欧美不卡高清在线| 国产成人免费爽爽爽视频| 亚洲一区二区三区成人网站| 成人性生交大片免费看无遮挡| 亚洲jjzzjjzz在线观看| 特级做A爰片毛片免费69| 亚洲日韩国产二区无码| 全免费a级毛片免费看无码| 亚洲AV色无码乱码在线观看 | 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲伊人久久综合中文成人网| 深夜a级毛片免费视频| 亚洲男人第一无码aⅴ网站| 丝袜足液精子免费视频| 久久丫精品国产亚洲av不卡| 国产a视频精品免费观看| 亚洲AV永久无码精品一福利| 亚洲国产成人精品女人久久久| 香蕉免费一级视频在线观看| 亚洲国产精品国自产拍电影| 青娱分类视频精品免费2| 蜜芽亚洲av无码一区二区三区| 亚洲一区视频在线播放| 免费不卡在线观看AV| 亚洲黄页网在线观看| mm1313亚洲国产精品美女| 成在线人视频免费视频| 亚洲国产成人精品电影| 又大又黄又粗又爽的免费视频| 久久久久久久99精品免费观看| 亚洲人成影院77777| 亚洲国产精品尤物YW在线观看| 一区二区免费视频| 亚洲av无码偷拍在线观看| 亚洲成AV人在线观看天堂无码| 成年性羞羞视频免费观看无限| av电影在线免费看|