FTP(文件传输协议)

FTP,是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。

该协议使用的端口号为20和21,其中20是数据端口,21是命令端口

FTP服务器文件列表展示:

1.启动easyftp-server:

2.新建用户,设置密码,开启权限

3.在浏览器中输入主机IP加端口号

FTP将服务器中的文件信息打印到控制台

public class Demo04 {

	public static void main(String[] args) {
		//创建基于FTP协议访问文件服务器的客户端对象
		FTPClient ftpClient = new FTPClient();
				
		try {
			//连接FTP服务器并验证用户名密码
			ftpClient.connect("192.168.98.200");
			ftpClient.login("cbx", "123456");
			
			//获取当前目录中所有文件
			FTPFile[] ftpFileList = ftpClient.listFiles();
			for(FTPFile file : ftpFileList) {
				System.out.println("文件名称"+file.getName());
				System.out.println("创建时间"+file.getTimestamp());
				System.out.println("文件大小"+file.getSize());
				System.out.println();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

运行结果:

FTP(文件上传到服务器)

public class Demo02 {

	public static void main(String[] args) {
		FTPClient ftpClient = new FTPClient();
		
		//读取本地文件的输入流
		try(FileInputStream in = new FileInputStream("C:\\Users\\lenovo\\Desktop\\cbx\\douban\\40d43a.webp")) {
			ftpClient.connect("192.168.254.143");
			ftpClient.login("cbx", "123456");
			
			//切换目录
			boolean isChange = ftpClient.changeWorkingDirectory("cao");
			
			if(!isChange) {
				//创建新目录
				ftpClient.makeDirectory("cao");
				ftpClient.changeWorkingDirectory("cao");
				
			}
			
			System.out.println(ftpClient.printWorkingDirectory());
			
			//文件上传
            //设置文件格式
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			
			//上传文件
			boolean isStore = ftpClient.storeFile(System.currentTimeMillis()+".jpg", in);
			
			System.out.println("文件上传成功?"+isStore);
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
                //断开服务器的连接
				ftpClient.disconnect();
			}catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

运行结果:

注意:通过storeFile()方法上传文件,第一个参数为上传到服务器后在服务器中的名称,第二个参数为读取本地文件的输入流。

FTP(文件下载)

public class Demo03 {

	public static void main(String[] args) {
		FTPClient ftpClient = new FTPClient();
		
		try(FileOutputStream out = new FileOutputStream("C:\\Users\\lenovo\\Desktop\\cbx\\douban\\xuan\\"+System.currentTimeMillis()+".jpg")) {
			ftpClient.connect("192.168.254.143",21);
			ftpClient.login("cbx", "123456");
			
			ftpClient.changeWorkingDirectory("cao");
			
			
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			boolean isRetrieve = ftpClient.retrieveFile("1.jpg", out);
			System.out.println("下载成功?"+isRetrieve);
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
				
			} catch (IOException e) {
				e.printStackTrace();
				ftpClient = null;
			}
		}
	}
}

 

注意:通过setFileType()方法设置文件格式,

通过retrieveFile()方法下载文件,第一个参数为文件在服务器中的名称,第二个参数为存放下载文件的输出流。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值