列宿乃施于上榮兮 日月才經于柍桭

          ………… 白駒過隙 歲月如斯 夢縈回繞 心靈之聲
          posts - 57, comments - 8, trackbacks - 0, articles - 41
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java實現FTP傳輸文件(一)

          Posted on 2007-05-18 19:22 默認為零 閱讀(1122) 評論(0)  編輯  收藏 所屬分類: 技術

            基于Java的ftp傳輸文件方式有2種,一種是利用Runtime.getRuntime().exec()執行操作系統的ftp命令,達到ftp的目的,另一種是利用Apache commons-ftp工具包實現ftp的功能,不同的方法,可以達到相同的效果。這里簡單介紹下用Java Runtime調用執行ftp的例子。

            下面是最近正巧做的利用Runtime執行操作系統的批處理腳本執行ftp文件傳輸功能的例子,程序生成腳本如下:

            Windows腳本

          open 目標IP
          用戶名
          密碼
          cd 目標路徑
          asc
          prompt
          put 本地文件(完整路徑)
          bye


            Unix腳本

          ftp -n -i 目標IP <<!EOF
          user 用戶名 密碼
          cd 目標路徑
          lcd 本地文件路徑
          asc
          prompt
          put 本地文件
          bye
          !EOF

            這里傳送的是文本文件,所以采用asc模式傳輸。然后Java Runtime執行命令 [Runtime.getRuntime().exec(cmd)] 如下:

            Windows命令

          ftp -s:腳本文件(完整路徑)


            Unix命令

          sh 腳本文件(完整路徑)


            以上如果都使用的是用戶當前工作目錄user.dir作為焦點目錄,則其實都可以省去(完整路徑)的定位??墒窃诜掌魃嫌脩魴嘞抻兴刂疲瑄ser.dir無法提供當前用戶寫入文件,所以只能麻煩一點另找目錄定位路徑。好了,其實也一樣。

            這樣,ftp上傳功能就完成了,當然,這里的前提是這個腳本生成不能有誤。如果輸入的參數有錯誤,腳本執行過程中返回的錯誤Runtime是沒有捕獲的。所以,如果需要知道ftp過程中的每一步是否出錯,出的什么錯,最好使用Apache的commons-ftp包處理(使用FTPClient),網路上有很多相關的例子,可以找來看看。

          主站蜘蛛池模板: 北辰区| 原平市| 阜宁县| 扎赉特旗| 兴义市| 石河子市| 侯马市| 廊坊市| 交口县| 乌拉特中旗| 仁布县| 九寨沟县| 瓮安县| 拜泉县| 和顺县| 高州市| 高淳县| 青铜峡市| 祥云县| 左云县| 民县| 梁河县| 宿迁市| 石渠县| 昌宁县| 五峰| 乐东| 舒城县| 峡江县| 井研县| 大悟县| 安阳市| 郑州市| 宁化县| 微博| 腾冲县| 台中市| 南江县| 衡阳县| 泸溪县| 九龙县|