Java实现FTP客户端的简单功能

概要

        在实现网络编程时,需要了解很多协议,FTP协议就是很重要的一个,这篇文章主要写对于Java在基于FTP协议实现网络编程时的一些简单操作即工具类的一些简单应用方式,例如,文件的上传下载,寻找目录和创建等。

实现过程(操作代码和相关解释)

    首先你要知道ftp的ip,路径,端口,有操作权限的账号和密码

  • 导入jar包

导入commons-net

下载commons-nethttps://mvnrepository.com/artifact/commons-net/commons-net/3.6或者

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.6</version>
</dependency>
  • 连接FTP服务器
        String ip = "192.168.59.215";
		int port = 21;		
		String userName = "admin";
		String passWord = "123456";
		
		//	创建基于FTP协议访问文件客户端的对象
		FTPClient client = new FTPClient();
		try {
			client.connect(ip,21);
			client.login(userName,passWord);
		} catch (SocketException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
  • 获取当前文件夹目录
            
            //  设置日期格式
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy年MM月dd日");
			//	获取当前文件夹目录中的所有文件
			FTPFile[] ftpFileList = client.listFiles();
			for (FTPFile ftpFile : ftpFileList) {
				//	文件名称中包含中文乱码
				String fileName = ftpFile.getName();
            /**
             * FTP协议里面,规定文件名编码为iso-8859-1
             * gb2312--编码集
             **/
				fileName = new String(fileName.getBytes("iso-8859-1"),"gb2312");
				System.out.println("文件名称:"+fileName);
				
				Date createDate = ftpFile.getTimestamp().getTime();
				System.out.println("文件创建时间:"+fmt.format(createDate));
				
				System.out.println("文件大小:"+ftpFile.getSize());
			}
  • 查找和创建文件夹
            String fileName = "FJQ_shuaizhao";
			//  创建并切换至个人
			Boolean ischange = ftpClient.changeWorkingDirectory(fileName);
			
			//	判断文件存在与否
			if (!ischange) {
				//	创建文件夹
				ftpClient.makeDirectory(fileName);
				
				//	切换文件夹
				ftpClient.changeWorkingDirectory(fileName);
			}else{
                ftpClient.changeWorkingDirectory(fileName);
            }
  • 文件上传
try(FileInputStream in = new  FileInputStream("本地文件上传路径"))
{
			//  文件上传
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			
			//	存文件
			ftpClient.storeFile(System.currentTimeMillis()+".jpg", in);
}
  • 文件下载
try(FileOutputStream out = new FileOutputStream("本地文件保存路径")) 
{
	//	下载指定格式文件-二进制格式BINARY_FILE_TYPE
	ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
				
	//	下载文件
	Boolean isRetrieve = ftpClient.retrieveFile("fjq.jpg", out);
				
	System.out.println("下载成功?"+isRetrieve);
				
} catch (IOException e) {
	e.printStackTrace();
}	finally {
	try {
		ftpClient.disconnect();
	} catch (IOException e) {
		e.printStackTrace();
	}
}
  •  关闭连接
try {
	ftpClient.disconnect();
} catch (IOException e) {
	e.printStackTrace();
}

技术名词解释

FTP(File Transfer Protocol):是应用层的一个文件传输协议 。主要作用是在服务器和客户端之间实现文件的传输和共享。FTP协议运行在TCP连接上,保证了文件传输的可靠性。在传输时,传输双方的操作系统、磁盘文件系统类型可以不同。

FTP协议:允许TCP/IP网络上的两台计算机之间进行文件传输。而FTP服务是基于FTP协议的文件传输服务。工作时,一台计算机上运行FTP客户端应用程序,另一台计算机上需要运行FTP服务器端程序。只有拥有了FTP服务,客户端才能进行文件传输。

小结

基于Java和FTP的网络编程,一些简单的操作,对于初学者来说有一定帮助。

由于本人偷懒,这会不想写了,内容还有部分想补充,看到本博客,请让我补充内容,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bitw-QwQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值