真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ftp客戶端代碼java ftp客戶端代碼vc代碼百度云

怎么用Java開(kāi)發(fā)FTP客戶端

摘要

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有德州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

本文解釋了如何利用庫(kù)用Java語(yǔ)言編寫(xiě)FTP客戶端代碼。它比較了FTP庫(kù)的一個(gè)完全列表,演示了每個(gè)庫(kù)的優(yōu)點(diǎn)和缺點(diǎn),并且?guī)椭鷽Q策者為他們的需要選擇適當(dāng)?shù)膸?kù)。另外,本文闡述了Fa?ade模式如何在取代一個(gè)庫(kù)時(shí)改變管理。最后,作者Jean-Pierre Norguet討論并解決了由于缺乏權(quán)威性的說(shuō)明書(shū)引起的一些問(wèn)題。

讓我們假設(shè)一個(gè)情景:我們要編寫(xiě)一個(gè)純Java應(yīng)用程序,該程序必須從運(yùn)行FTP服務(wù)器的遠(yuǎn)程計(jì)算機(jī)上下載文件。我們也通過(guò)遠(yuǎn)程文件信息,像名字、日期、或者尺寸,來(lái)過(guò)濾下載。

自己來(lái)寫(xiě)一個(gè)FTP協(xié)議處理,盡管是有可能,并且可能很有趣。但是這樣做也有可能有困難、花費(fèi)長(zhǎng)時(shí)間、并且有潛在的風(fēng)險(xiǎn)。既然我們不肯花費(fèi)時(shí)間、精力、或者金錢(qián)自己來(lái)寫(xiě)一個(gè)處理器,那我們推薦使用一個(gè)可重用的現(xiàn)有的軟件組件。萬(wàn)維網(wǎng)上有并且大量的庫(kù)可供使用。有了一個(gè)FTP客戶端庫(kù),下載一個(gè)文件用Java語(yǔ)言編寫(xiě)就像下面一樣簡(jiǎn)單:

FTPClient ftpClient = new FTPClient();

ftpClient.connect("", "user01", "pass1234");

ftpClient.download("C:\\Temp\\", "README.txt");

// Eventually other operations here ...

ftpClient.disconnect();

尋找一個(gè)適合我們需要的高質(zhì)量的Java FTP客戶端庫(kù)并不像他看起來(lái)那么簡(jiǎn)單;它可能相當(dāng)困難。要找到一個(gè)Java FTP客戶端庫(kù)需要花一些時(shí)間。接著,在我們找到所有的已存在的庫(kù)之后,我們選哪個(gè)?每個(gè)庫(kù)適合不同的需要。庫(kù)在質(zhì)量上是不等的,并且它們的設(shè)計(jì)有本質(zhì)的區(qū)別。每個(gè)提供一套不同的屬性和使用不同類型的行話來(lái)描述他們。

因此,計(jì)算和比較FTP客戶端庫(kù)證明是困難而且令人迷惑的。重復(fù)使用已存在的組件是一個(gè)值得推薦的過(guò)程,但在這個(gè)例子中,啟動(dòng)它也是令人沮喪的。并且這有點(diǎn)羞愧:在選好的一個(gè)好的FTP庫(kù)之后,剩下的工作就是例程了。

本文旨在使選擇過(guò)程簡(jiǎn)短、容易、并且有價(jià)值。我首先列出了所有的FTP客戶端庫(kù)。接著,我定義和描述了庫(kù)應(yīng)該用某種方式找到的相關(guān)標(biāo)準(zhǔn)的一個(gè)表格。最后,我列出了一個(gè)總瀏覽的矩陣,該矩陣給出了庫(kù)間相互比較的過(guò)程的快速瀏覽。所有的信息提供了我們作出一個(gè)迅速、可靠、和長(zhǎng)期的決定所需的每件事。

使用JDK(Java 開(kāi)發(fā)工具集)的FTP支持

用于FTP的訪問(wèn)規(guī)范是用于注釋的請(qǐng)求:959(RFC959)。Sun Microsystems提供了JDK的一個(gè)RFC959執(zhí)行。但是它是內(nèi)部的、非文檔化的、并且不提供任何資源。當(dāng)RFC959在尚未公開(kāi)時(shí),它實(shí)際上是執(zhí)行RFC1738、URL規(guī)范的一個(gè)公共界面的后終端。如圖1。

圖1. 使用JDK的FTP支持。

RFC1738的一個(gè)執(zhí)行過(guò)程在JDK中作為標(biāo)準(zhǔn)給出。它為基本的FTP傳送做一個(gè)可推理的工作。它是公共的、文檔化的、并且提供源代碼。要使用它,我們可編寫(xiě)下面語(yǔ)句:

URL url = new URL(";type=i");

URLConnection urlc = url.openConnection();

InputStream is = urlc.getInputStream(); // To download

OutputStream os = urlc.getOutputStream(); // To upload

使用JDK的FTP客戶端嚴(yán)格的遵守標(biāo)準(zhǔn)推薦,但它有以下幾個(gè)說(shuō)明:

它從根本上區(qū)別于第三方的FTP客戶端庫(kù);這些執(zhí)行RFC959而不是RFC1738

RFC959用大多數(shù)的桌面FTP客戶端工具執(zhí)行。許多Java程序員使用這些工具連接到FTP服務(wù)器上。作為一個(gè)嘗試,這些工具及有可能優(yōu)先于類似的RFC959庫(kù)。

URL 和URLConnection類只開(kāi)放用于通訊的流。Sun庫(kù)不為構(gòu)造原始的FTP服務(wù)器響應(yīng)成為像String、 File、 RemoteFile、 或者 Calendar之類的更合用的Java對(duì)象而提供直接支持。所以我們不得不編寫(xiě)更多的代碼,只是為了把數(shù)據(jù)寫(xiě)入一個(gè)文件中或者開(kāi)始一個(gè)目錄列表。

正像RFC1738的3.2部分解釋的一樣,"最優(yōu)化",F(xiàn)TP URL在每個(gè)操作后要求關(guān)閉(控制)連接。這對(duì)于傳送許多小文件是一種浪費(fèi)、并且毫無(wú)效率。而且,作了特別限制FTP服務(wù)器可能把會(huì)這樣一個(gè)通訊開(kāi)銷認(rèn)為一個(gè)是惡毒的網(wǎng)絡(luò)攻擊或者濫用而拒絕提供進(jìn)一步的服務(wù)。

最后,它缺乏幾個(gè)有用的屬性。

由于以上所有或者某種原因,可優(yōu)先使用一個(gè)第三方的庫(kù)。下面部分列出了可供選擇的第三方的庫(kù)。

見(jiàn):

諸位大神誰(shuí)有java 實(shí)現(xiàn)FTP客戶端的源碼

您好,/ **

*創(chuàng)建日期:2008年12月23日

*類名:

*類路徑:組織結(jié)構(gòu)

*更改日志:

* / 包組織結(jié)構(gòu);

進(jìn)口的java.io.File;

進(jìn)口java.io.FileInputStream中;

進(jìn)口java.io.FileOutputStream中;

進(jìn)口的java。 io.IOException;

進(jìn)口sun點(diǎn)虐 .TelnetInputStream;

進(jìn)口sun點(diǎn)虐 .TelnetOutputStream;

進(jìn)口sun點(diǎn)虐 .;

/ **

* @作者南山地獄

* @說(shuō)明FTP操作

* /

公共類的Ftp {

/ **

* BR /獲取FTP目錄* / 公共無(wú)效getftpList(){

字符串服務(wù)器=“IP地址 /輸入FTP服務(wù)器/弦樂(lè)用戶=”“;/ / FTP服務(wù)器的登錄用戶名

字符串密碼=“”;/ /登錄FTP服務(wù)器的用戶名

字符串路徑密碼=“”;/ / FTP路徑上的服務(wù)器

嘗試{

FtpClient的FTP客戶端=新FtpClient的();/ /創(chuàng)建FtpClient的對(duì)象

ftpClient.openServer(服務(wù)器);/ /連接到FTP服務(wù)器

ftpClient.login(用戶名,密碼);/ / FTP服務(wù)器 BR /如果(path.length()= 0){

ftpClient.cd(路徑);

}

TelnetInputStream是= ftpClient.list();

詮釋三;

而{

System.out.print((char)的C)((C = is.read())= -1?。?

}

掉} is.close ();

ftpClient.closeServer();/ /退出FTP服務(wù)器

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}

/ **

*

* /

公共無(wú)效getFtpFile(){

字符串服務(wù)器=“”;/ / IP地址中輸入FTP服務(wù)器

弦樂(lè)用戶=“”;/ / FTP服務(wù)器的登錄用戶名

字符串密碼=“”;/ /登錄密碼為FTP服務(wù)器的用戶名

字符串路徑=“路徑

字符串文件名“;/ /上=的FTP服務(wù)器”“;/ /下載文件名稱

嘗試{

FtpClient的FTP客戶端=新FtpClient的();

ftpClient.openServer(服務(wù)器);

ftpClient.login(用戶名,密碼);

如果(路徑。長(zhǎng)度()= 0)

ftpClient.cd(路徑);!

ftpClient.binary();

TelnetInputStream是= ftpClient.get(文件名);

文件file_out =新的文件(文件名);

文件輸出流OS =新的文件輸出流(file_out);

字節(jié)[]字節(jié)=新字節(jié)[1024];

詮釋三;

而((C = is.read(字節(jié)))= -1){

os.write (字節(jié),0,C);

}!

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println (ex.getMessage());

}

FTP}

/ **

*文件上傳到FTP

* /

公共無(wú)效putFtpFile() {

字符串服務(wù)器=“”;/ /輸入IP地址對(duì)服務(wù)器

字符串用戶的地址=“”;/ / FTP服務(wù)器的登錄用戶名

字符串密碼=“”;/ / FTP服務(wù)器登錄用戶名密碼

字符串路徑=“”就 / FTP服務(wù)器/字符串文件名=“”;/ /上傳的文件名

FtpClient的FTP客戶端=新的try { FtpClient的();

ftpClient.openServer(服務(wù)器);

ftpClient.login(用戶名,密碼);

如果(!path.length()= 0)

ftpClient.cd (路徑);

ftpClient.binary();

TelnetOutputStream OS = ftpClient.put(文件名);

文件file_in =新的文件(文件名);

文件輸入流是=新的文件輸入流(file_in);

字節(jié)[]字節(jié)=新字節(jié)[1024];

詮釋三;

同時(shí)(! (C = is.read(字節(jié)))= -1){

操作系統(tǒng)。寫(xiě)(字節(jié),0,C);

}

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}

}

如何用java實(shí)現(xiàn)ftp客戶端程序

FTP 的主要操作都是基于各種命令基礎(chǔ)之上的。常用的命令有: · 設(shè)置傳輸模式,它包括ASCⅡ(文本) 和BINARY 二進(jìn)制模式; · 目錄操作,改變或顯示遠(yuǎn)程計(jì)算機(jī)的當(dāng)前目錄(cd、dir/ls 命令); · 連接操作,open命令用于建立同遠(yuǎn)程計(jì)算機(jī)的連接;close命令用于關(guān)閉連接; · 發(fā)送操作,put命令用于傳送文件到遠(yuǎn)程計(jì)算機(jī);mput 命令用于傳送多個(gè)文件到遠(yuǎn)程計(jì)算機(jī); · 獲取操作,get命令用于接收一個(gè)文件;mget命令用于接收多個(gè)文件。 編程思路 根據(jù)FTP 的工作原理,在主函數(shù)中建立一個(gè)服務(wù)器套接字端口,等待客戶端請(qǐng)求,一旦客戶端請(qǐng)求被接受,服務(wù)器程序就建立一個(gè)服務(wù)器分線程,處理客戶端的命令。如果客戶端需要和服務(wù)器端進(jìn)行文件的傳輸,則建立一個(gè)新的套接字連接來(lái)完成文件的操作。 編程技巧說(shuō)明


網(wǎng)站名稱:ftp客戶端代碼java ftp客戶端代碼vc代碼百度云
URL分享:http://weahome.cn/article/ddgpidi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部