最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?FTP協(xié)議實(shí)現(xiàn)文件下載功能

 更新時(shí)間:2022年11月07日 08:39:34   作者:OlaiolaiO  
FTP(File?Transfer?Protocol)就是文件傳輸協(xié)議。通過(guò)FTP客戶端從遠(yuǎn)程FTP服務(wù)器上拷貝文件到本地計(jì)算機(jī)稱為下載,將本地計(jì)算機(jī)上的文件復(fù)制到遠(yuǎn)程FTP服務(wù)器上稱為上傳,上傳和下載是FTP最常用的兩個(gè)功能

一、FTP協(xié)議

ftp是(FileTransferProtocol)的縮寫,文件傳輸協(xié)議必然是用來(lái)傳輸文件的協(xié)議。并且是用來(lái)在兩臺(tái)計(jì)算機(jī)之間傳輸文件,是internet中應(yīng)用非常廣泛的服務(wù)之一。FTP是一種基于TCP的協(xié)議,具有跨平臺(tái)的特性,支持Windows,Linux,Unix等操作系統(tǒng)。采用客戶/服務(wù)器模式,通過(guò)FTP服務(wù)器可以快速的下載,上傳文件。同時(shí)它也是一個(gè)應(yīng)用程序,通過(guò)FTP客戶端與他人的服務(wù)器連接,可以訪問(wèn)服務(wù)器上的文件或信息。FTP(文件傳輸協(xié)議)也是C/S架,分為兩部分:FTP服務(wù)器、FTP客戶端。服務(wù)器是基于Easy FTP服務(wù)器,如圖所示:

二、文件上傳

由于FTP協(xié)議的傳輸是基于TCP協(xié)議,所以步驟大致分為:建立與服務(wù)器的連接、登錄操作、具體實(shí)現(xiàn)的操作、斷開連接。

1.連接服務(wù)器

	// 1.創(chuàng)建FTPClient的用戶對(duì)象
	FTPClient ftpClient = new FTPClient();
	// 連接服務(wù)器
	ftpClient.connect("192.168.254.185", 21);

2.登錄操作

	// 2.登錄【用戶名,密碼】
	ftpClient.login("****", "*****");

3.上傳操作

首先先確定上傳至服務(wù)器的哪個(gè)文件夾,若沒有此文件夾則創(chuàng)建此文件夾;接著獲取上傳文件的位置;然后設(shè)置上傳文件的類型,通過(guò)storeFile()方法將目標(biāo)文件上傳至服務(wù)器;最后切記斷開與服務(wù)器的連接。

	// 3.上傳操作
	// 切換為指定的文件夾
	boolean isChange = ftpClient.changeWorkingDirectory("data");
	// 判斷文件是否存在
	if(!isChange) {
		// 不存在,則創(chuàng)建文件
		ftpClient.makeDirectory("data");
		// 在切換至指定的文件夾
		ftpClient.changeWorkingDirectory("data");
	}
		// 設(shè)置上傳的文件類型
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);	
		// 上傳的目標(biāo)文件位置
		FileInputStream fileLoad = new FileInputStream("E://JavaTest//aaa//lazy.jpg")
		// 上傳文件
		// 參數(shù)1:保存的文件名稱
		//參數(shù)2:本地的文件位置
		ftpClient.storeFile("data.jpg", fileLoad);
	} catch (IOException e) {
		e.printStackTrace();
	}finally{
		try {
			// 必須斷開與服務(wù)器的連接
			ftpClient.disconnect();
		} catch (IOException e) {				
			e.printStackTrace();
		}
	}

三、文件下載

文件的下載也是大致分為三部分:建立于服務(wù)器之間的連接、登錄操作、具體操作、斷開連接。

1.連接服務(wù)器

	// 1.創(chuàng)建FTPClient的用戶對(duì)象
	FTPClient ftpClient = new FTPClient();
	// 連接服務(wù)器
	ftpClient.connect("192.168.254.185", 21);

2.登錄操作

	// 2.登錄【用戶名,密碼】
	ftpClient.login("****", "*****");

3.下載操作

首先先獲取服務(wù)器上的文件;接著選擇下載的文件;然后設(shè)置下載文件的類型,通過(guò)retrieveFile()方法將目標(biāo)文件下載至本地文件中;最后切記斷開與服務(wù)器的連接。

	// 3.存儲(chǔ)至本地磁盤的位置
	// 獲取的圖片名稱
	String fileName = "lay.jpg";
	try (FileOutputStream out = new FileOutputStream("E:\\JavaTest\\ccc\\" + fileName)) {			
			// 切換至文件的位置
			ftpClient.changeWorkingDirectory("bbb");
			// 設(shè)置文件的類型
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			// 參數(shù)1:文件保存的名稱
			// 參數(shù)2:下載至本地的位置
			ftpClient.retrieveFile(fileName, out);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				// 斷開與服務(wù)器的連接
				ftpClient.disconnect();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

四、總結(jié)

清楚FTP協(xié)議的文件傳輸是基于TCP/IP協(xié)議上,TCP協(xié)議最主要的點(diǎn)是:客戶端與服務(wù)器之間是建立連接,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的傳輸。所以在文件傳輸或下載時(shí),先建立連接,再登錄驗(yàn)證,然后實(shí)現(xiàn)具體的操作過(guò)程,最后切記要斷開客戶端與服務(wù)器之間的連接。

到此這篇關(guān)于Java FTP協(xié)議實(shí)現(xiàn)文件下載功能的文章就介紹到這了,更多相關(guān)Java文件下載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot整合阿里云百煉DeepSeek實(shí)現(xiàn)sse流式打印的操作方法

    springboot整合阿里云百煉DeepSeek實(shí)現(xiàn)sse流式打印的操作方法

    這篇文章主要介紹了springboot整合阿里云百煉DeepSeek實(shí)現(xiàn)sse流式打印,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-04-04
  • 基于SpringBoot實(shí)現(xiàn)QQ郵箱驗(yàn)證碼注冊(cè)功能

    基于SpringBoot實(shí)現(xiàn)QQ郵箱驗(yàn)證碼注冊(cè)功能

    QQ 郵箱是由騰訊公司推出的一款免費(fèi)郵箱服務(wù),它提供了完整的郵件發(fā)送和接收功能,并且還支持多種郵件格式和附件類型,QQ 郵箱還具有強(qiáng)大的反垃圾郵件功能,可以有效地過(guò)濾垃圾郵件,并保護(hù)用戶隱私和安全,所以本文給大家介紹了基于SpringBoot實(shí)現(xiàn)QQ郵箱驗(yàn)證碼注冊(cè)功能
    2024-11-11
  • 詳解SpringMVC的url-pattern配置及原理剖析

    詳解SpringMVC的url-pattern配置及原理剖析

    這篇文章主要介紹了SpringMVC的url-pattern配置及原理剖析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 關(guān)于@ConfigurationProperties注解全解析

    關(guān)于@ConfigurationProperties注解全解析

    通過(guò)@ConfigurationProperties和@ConditionalOnProperty注解,可以實(shí)現(xiàn)基于配置的條件加載Bean,以此優(yōu)化Spring Boot應(yīng)用的啟動(dòng)速度,在application.yml中設(shè)置配置項(xiàng),如是否加載特定的Bean(以swagger配置為例)
    2024-11-11
  • IDEA集成MyBatis Generator插件的使用

    IDEA集成MyBatis Generator插件的使用

    這篇文章主要介紹了IDEA集成MyBatis Generator插件的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • MyBatis-Plus樂觀鎖插件的用法小結(jié)

    MyBatis-Plus樂觀鎖插件的用法小結(jié)

    樂觀鎖很樂觀,對(duì)任何事情都保持著一個(gè)樂觀的態(tài)度,認(rèn)為別人不會(huì)修改數(shù)據(jù),所以不會(huì)上鎖,只是在更新數(shù)據(jù)的時(shí)候,去判斷這條數(shù)據(jù)有沒有被別人修改過(guò),這篇文章主要介紹了MyBatis-Plus樂觀鎖插件的用法,需要的朋友可以參考下
    2022-08-08
  • SpringMVC異常處理器編寫及配置

    SpringMVC異常處理器編寫及配置

    這篇文章主要介紹了SpringMVC異常處理器編寫及配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot中的自動(dòng)注入方式

    SpringBoot中的自動(dòng)注入方式

    這篇文章主要介紹了SpringBoot中的自動(dòng)注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java 中 synchronized的用法詳解(四種用法)

    Java 中 synchronized的用法詳解(四種用法)

    Java語(yǔ)言的關(guān)鍵字,當(dāng)它用來(lái)修飾一個(gè)方法或者一個(gè)代碼塊的時(shí)候,能夠保證在同一時(shí)刻最多只有一個(gè)線程執(zhí)行該段代碼。本文給大家介紹java中 synchronized的用法,對(duì)本文感興趣的朋友一起看看吧
    2015-11-11
  • 基于java中BlockingQueue的使用介紹

    基于java中BlockingQueue的使用介紹

    本篇文章小編為大家介紹,基于java中BlockingQueue的使用介紹。需要的朋友參考下
    2013-04-04

最新評(píng)論

浦城县| 白沙| 始兴县| 义马市| 旌德县| 青州市| 镇赉县| 宁晋县| 兰坪| 施秉县| 武穴市| 明光市| 庆元县| 姜堰市| 汾阳市| 阳西县| 沁源县| 上林县| 平陆县| 安乡县| 延庆县| 彭泽县| 唐海县| 周宁县| 库车县| 丹东市| 来宾市| 神池县| 图们市| 波密县| 松溪县| 大英县| 巨野县| 合阳县| 绥芬河市| 遵义县| 澜沧| 太仆寺旗| 宁明县| 江陵县| 阳西县|