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

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

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

一、FTP協(xié)議

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

二、文件上傳

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

1.連接服務器

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

2.登錄操作

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

3.上傳操作

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

	// 3.上傳操作
	// 切換為指定的文件夾
	boolean isChange = ftpClient.changeWorkingDirectory("data");
	// 判斷文件是否存在
	if(!isChange) {
		// 不存在,則創(chuàng)建文件
		ftpClient.makeDirectory("data");
		// 在切換至指定的文件夾
		ftpClient.changeWorkingDirectory("data");
	}
		// 設置上傳的文件類型
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);	
		// 上傳的目標文件位置
		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 {
			// 必須斷開與服務器的連接
			ftpClient.disconnect();
		} catch (IOException e) {				
			e.printStackTrace();
		}
	}

三、文件下載

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

1.連接服務器

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

2.登錄操作

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

3.下載操作

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

	// 3.存儲至本地磁盤的位置
	// 獲取的圖片名稱
	String fileName = "lay.jpg";
	try (FileOutputStream out = new FileOutputStream("E:\\JavaTest\\ccc\\" + fileName)) {			
			// 切換至文件的位置
			ftpClient.changeWorkingDirectory("bbb");
			// 設置文件的類型
			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 {
				// 斷開與服務器的連接
				ftpClient.disconnect();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

四、總結(jié)

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

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

相關文章

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

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

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

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

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

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

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

    關于@ConfigurationProperties注解全解析

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

    IDEA集成MyBatis Generator插件的使用

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

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

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

    SpringMVC異常處理器編寫及配置

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

    SpringBoot中的自動注入方式

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

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

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

    基于java中BlockingQueue的使用介紹

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

最新評論

宁城县| 冷水江市| 奉化市| 那曲县| 侯马市| 泗阳县| 高邮市| 宿松县| 苏尼特右旗| 红桥区| 玉屏| 子长县| 年辖:市辖区| 靖边县| 安宁市| 许昌市| 建阳市| 福贡县| 茶陵县| 博爱县| 左云县| 绥芬河市| 葵青区| 永兴县| 呈贡县| 武山县| 张家川| 灵石县| 通江县| 德江县| 龙岩市| 昌黎县| 易门县| 三门县| 金沙县| 鄂托克旗| 浮山县| 泌阳县| 福建省| 阜城县| 定襄县|