欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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();
			}
		}

四、總結

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

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

相關文章

  • java之swing實現(xiàn)復選框的方法

    java之swing實現(xiàn)復選框的方法

    這篇文章主要介紹了java之swing實現(xiàn)復選框的方法,實例分析了java基于圖形界面復選框的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Mybatis返回插入主鍵id的方法

    Mybatis返回插入主鍵id的方法

    這篇文章主要介紹了 Mybatis返回插入主鍵id的方法,在文章底部給大家補充了Mybatis中insert中返回主鍵ID的方法,非常不錯,需要的朋友可以參考下
    2017-04-04
  • Spring Task定時任務的實現(xiàn)詳解

    Spring Task定時任務的實現(xiàn)詳解

    這篇文章主要介紹了SpringBoot定時任務功能詳細解析,這次的功能開發(fā)過程中也算是對其內(nèi)涵的進一步了解,以后遇到定時任務的處理也更清晰,更有效率了,對SpringBoot定時任務相關知識感興趣的朋友一起看看吧
    2022-08-08
  • springboot中@RequestMapping的用法

    springboot中@RequestMapping的用法

    這篇文章主要介紹了springboot中@RequestMapping的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java從命令行獲取數(shù)據(jù)的三種方式代碼實例

    java從命令行獲取數(shù)據(jù)的三種方式代碼實例

    這篇文章主要介紹了java從命令行獲取數(shù)據(jù)的三種方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java獲取當前系統(tǒng)事件System.currentTimeMillis()方法

    Java獲取當前系統(tǒng)事件System.currentTimeMillis()方法

    下面小編就為大家?guī)硪黄狫ava獲取當前系統(tǒng)事件System.currentTimeMillis()方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • java后臺實現(xiàn)支付寶對賬功能的示例代碼

    java后臺實現(xiàn)支付寶對賬功能的示例代碼

    這篇文章主要介紹了java后臺實現(xiàn)支付寶對賬功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • idea的使用之關于tomcat熱部署的教程

    idea的使用之關于tomcat熱部署的教程

    這篇文章主要介紹了idea的使用之關于tomcat熱部署的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 你知道Spring中為何不建議使用字段注入嗎

    你知道Spring中為何不建議使用字段注入嗎

    這篇文章主要給大家介紹了關于Spring中為何不建議使用字段注入的相關資料,通過本文你將對Spring的引入方式有更一步的了解,需要的朋友可以參考下
    2021-08-08
  • Geotools實現(xiàn)shape文件的寫入功能

    Geotools實現(xiàn)shape文件的寫入功能

    Geotools作為開源的Java?GIS三方庫,已經(jīng)成為GIS服務器端的主流開源庫,其功能非常強大,涉及到GIS業(yè)務的方方面面,其中就包括GIS數(shù)據(jù)的讀寫,今天小編就借助Geotools來實現(xiàn)shape數(shù)據(jù)的寫入,需要的朋友可以參考下
    2023-08-08

最新評論