<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: yy6080久久亚洲精品| 久久精品国产亚洲av麻豆小说| 亚洲中文字幕无码日韩| 亚洲精品中文字幕乱码三区| 免费人成动漫在线播放r18| 国产精品二区三区免费播放心| 中文字幕在亚洲第一在线| 国产免费牲交视频免费播放| 91在线手机精品免费观看| 亚洲国产精品VA在线看黑人| 久久久久免费精品国产小说| 亚洲视频免费在线看| 特黄特色大片免费| 久久久久噜噜噜亚洲熟女综合 | 亚洲视频国产视频| 国拍在线精品视频免费观看| 在线亚洲人成电影网站色www| 中文字幕的电影免费网站| 成人免费毛片视频| 亚洲久本草在线中文字幕| 99视频在线免费| 亚洲国产区男人本色在线观看| 暖暖免费高清日本中文| a级毛片免费观看在线| 日本免费的一级v一片| 思思久久99热免费精品6| 久久久久无码精品亚洲日韩| 国产精品视频免费| 亚洲综合激情另类小说区| 女人18毛片a级毛片免费视频| 亚洲一区中文字幕久久| 免费无码精品黄AV电影| 男女猛烈激情xx00免费视频| 久久精品国产亚洲香蕉| AAAAA级少妇高潮大片免费看| 99久久亚洲精品无码毛片| 色www永久免费视频| 亚洲heyzo专区无码综合| 亚洲色欲色欲www在线丝| 国产福利在线观看免费第一福利| 色老头综合免费视频|