<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)站導航:
     
    主站蜘蛛池模板: 国产福利免费视频 | 特级aa**毛片免费观看| 久草在视频免费福利| 久久综合亚洲色HEZYO社区| 久久黄色免费网站| 午夜亚洲国产理论秋霞| 久久永久免费人妻精品下载| 亚洲理论片中文字幕电影| 16女性下面无遮挡免费| 亚洲最大黄色网址| 成人毛片18女人毛片免费视频未 | 亚洲人成人无码网www国产| 日韩精品视频在线观看免费| 久久久亚洲精品蜜桃臀 | A在线观看免费网站大全| 亚洲欧洲日本在线观看| 妞干网免费观看视频| 亚洲av第一网站久章草| 国产精品亚洲αv天堂无码| 国内精品久久久久影院免费| 97亚洲熟妇自偷自拍另类图片| 手机看黄av免费网址| 亚洲人成色777777老人头| 免费又黄又爽的视频| 最近免费中文字幕MV在线视频3| 亚洲高清在线观看| 最近免费中文字幕4| 男人和女人高潮免费网站| 亚洲av永久无码精品网站| 午夜国产精品免费观看| 羞羞漫画登录页面免费| 国产A在亚洲线播放| 免费看国产精品3a黄的视频| 四虎精品免费永久免费视频| 亚洲人成影院在线| 免费jjzz在线播放国产| 一级成人a毛片免费播放| 亚洲国产精品无码观看久久| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 成人免费黄色网址| 免费看黄网站在线看 |