Commons net实现 FTP上传下载
最近項(xiàng)目中需要到Ftp文件上傳,選擇了Commons net。Commons net包中的ftp工具類(lèi)能夠幫助我們輕松實(shí)現(xiàn)Ftp方式的文件上傳/下載。其中最重要的一個(gè)類(lèi)就是FTPClient類(lèi),這個(gè)提供了許多FTP操作相關(guān)的
方法,比如鏈接,登錄,上傳,下載,和注銷(xiāo)。
FTP 操作的過(guò)程一般為連接服務(wù)器,登錄,進(jìn)行文件上傳/下載,文件(目錄)的添加刪除修改等操作。平常用的比較多的是文件的上傳和下載。
下面是一些基本的上傳操作(將Commons net的jar包引入即可使用):
public class FtpUtil {public static void main(String[] args) {FTPClient ftpClient = new FTPClient();try {//連接指定服務(wù)器,默認(rèn)端口為21ftpClient.connect("127.0.0.1");System.out.println("connect to server");//獲取響應(yīng)字符串(FTP服務(wù)器上可設(shè)置)String replyString = ftpClient.getReplyString();System.out.println("replyString: " + replyString);//獲取響應(yīng)碼用于驗(yàn)證是否連接成功int reply = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {System.out.println("");System.exit(1);}//設(shè)置鏈接編碼,windows主機(jī)UTF-8會(huì)亂碼,需要使用GBK或gb2312編碼ftpClient.setControlEncoding("GBK");//登錄服務(wù)器boolean login = ftpClient.login("luojing", "luojing");if (login) {System.out.println("登錄成功!");} else {System.out.println("登錄失敗!");}//獲取所有文件和文件夾的名字FTPFile[] files = ftpClient.listFiles();for(FTPFile file : files){if(file.isDirectory()){System.out.println(file.getName() + " 是文件夾");}if(file.isFile()){System.out.println(file.getName() + " 是文件");}}//生成InputStream用于上傳本地文件InputStream in = new FileInputStream("e:\\1.txt");//上傳文件ftpClient.storeFile("dest.txt",in);in.close();//注銷(xiāo)登錄boolean logout = ftpClient.logout();if (logout) {System.out.println("注銷(xiāo)成功!");} else {System.out.println("注銷(xiāo)失敗!");}} catch (Exception e) {e.printStackTrace();} finally {//關(guān)閉鏈接需要放在finally語(yǔ)句塊中if (ftpClient.isConnected()) {try {ftpClient.disconnect();} catch (IOException e) {e.printStackTrace();}}}}}此外,FTPClient類(lèi)中也提供了一些文件/文件夾操作的方法。通過(guò)commos net提供的方法,可以方便的實(shí)現(xiàn)斷點(diǎn)傳輸?shù)裙δ堋N疫€可以同個(gè)retrieveFileStream方法來(lái)獲取遠(yuǎn)程服務(wù)器中指定文件的一個(gè)輸入流來(lái)供我們手動(dòng)的進(jìn)行讀操作,也可以使用appendFileStream方法來(lái)獲取要上傳到遠(yuǎn)程服務(wù)器中文件對(duì)應(yīng)的輸出流對(duì)象,然后我們就可以手動(dòng)的從本地文件中讀取數(shù)據(jù)然后寫(xiě)入到遠(yuǎn)程服務(wù)中,比如我們想知道上傳的進(jìn)度。總的來(lái)說(shuō),Commons net提供的方法還是非常好使,非常方便的。一些其他的功能就需要在使用的時(shí)候去看API手冊(cè)了。
可能是環(huán)境影響,發(fā)現(xiàn)到了公司之后學(xué)習(xí)效率比在學(xué)校高了很多額,繼續(xù)加油!
轉(zhuǎn)載于:https://www.cnblogs.com/jdluojing/archive/2012/07/23/3212412.html
總結(jié)
以上是生活随笔為你收集整理的Commons net实现 FTP上传下载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 转:RSS阅读、社会化阅读与个性化阅读
- 下一篇: 递增输出链表结点,删除重复结点