FTP协议相关内容及案例

FTP(File Transfer Protocol):是应用层的一个文件传输协议 。主要作用是在服务器和客户端之间实现文件的传输和共享。FTP协议运行在TCP连接上,保证了文件传输的可靠性。

FTP服务器的搭建

1.启动Ftpconsole.exe

2.创建用户,设置权限

 

3.在浏览器中输入IP地址及端口号即可访问 

 

使用FTPClient 实现文件的罗列并打印到控制台上

//创建基于FTP协议访问文件服务器的客户端对象
		FTPClient ftpClient=new FTPClient();
		//连接ftp服务器并验证用户名密码
		try {
			ftpClient.connect("192.168.254.131",21);
			ftpClient.login("admin", "123123");
			boolean isChange=ftpClient.changeWorkingDirectory("zxy");
			if(isChange) {
			//获取当前目录的所有文件
			FTPFile[] ftpFileList=ftpClient.listFiles();
			//使用DataFormat设置日期格式
			SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日");
			for(FTPFile file:ftpFileList) {
				//文件名称中包含中文乱码
				String filename=file.getName();
				filename=new String(filename.getBytes("iso-8859-1"),"gb2312");
				System.out.println("文件名称:"+filename);
				Date createData=file.getTimestamp().getTime();
				System.out.println("创建时间:"+fmt.format(createData));
				System.out.println("文件大小:"+file.getSize()+"字节");
			}
			}else {
				ftpClient.makeDirectory("zxy");
			}
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (IOException e) {	
			e.printStackTrace();
		}
		

使用FTPClient在服务器上创建个人目录,并上传文件

FTPClient ftpClient=new FTPClient();
		try (FileInputStream in = new FileInputStream("F:\\猿究院学习资料\\test\\风景.jpg");
				FileOutputStream out=new FileOutputStream("F:\\猿究院学习资料\\test\\xx.jpg")) {
			ftpClient.connect("192.168.254.131",21);
			ftpClient.login("admin", "123456");
			boolean isChange=ftpClient.changeWorkingDirectory("zxy");
			if(!isChange) {
				//创建个人目录
				ftpClient.makeDirectory("zxy");
				//切换
				ftpClient.changeWorkingDirectory("zxy");
			}
			System.out.println(ftpClient.printWorkingDirectory());
				ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
				//存储
				boolean isStore=ftpClient.storeFile("aaa.jpg", in);
				System.out.println(isStore);

使用FTPClent从服务器上下载文件并保存到本地

FTPClient ftpClient=new FTPClient();
		try (FileOutputStream out=new FileOutputStream("F:\\猿究院学习资料\\test01\\xx.jpg")) {
			ftpClient.connect("192.168.254.131",21);
			ftpClient.login("admin", "123456");
			boolean isChange=ftpClient.changeWorkingDirectory("zxy");
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
				//下载
				boolean isRetrieve=ftpClient.retrieveFile("aaa.jpg", out);
				System.out.println(isRetrieve);
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值