FTP协议个人总结

目录

一、连接FTP服务器

二、获取文件列表

三、进入其他文件夹

四、文件上传

五、将服务器中的文件下载到本地

FTP协议能够得到指定文件夹中的文件列表,并进行上传和下载文件

一、连接FTP服务器

首先打开easyFTP(一种FTP软件)

打开后,在Java代码中首先创建FTPClient对象。并使用此对象的login()方法和connect()方法分别设置用户名、密码和连接信息。

ftpClient.connect("主机地址",端口号);
ftpClient.login("用户名", "密码");

二、获取文件列表

通过FTPClient对象的listFiles()方法

此方法返回的是一个FTPFile[ ]对象数组,这个数组中的每一个对象都是一个文件

通过forEach遍历文件的同时能够获取文件创建名称( getName() ),创建时间( getTimestamp() )和文件大小( getSize() ).

SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
for(FTPFile file : ftpfiles) {
    String fileName = file.getName();
	fileName = new String(fileName.getBytes("iso-8859-1"),"gb2312");
	Date date = file.getTimestamp().getTime();
	System.out.println("文件名称:" + fileName);
	System.out.println("创建时间:" + format.format(date));
	System.out.println("文件大小:" + file.getSize() + "字节");
				}

由于通过getTimestamp()方法获得的时间不是我们想要的“年月日”的时间格式,所以通过SimpleDateFormat对象的构造方法,自行设置自己想要的时间输出格式。

三、进入其他文件夹

例如:D:\Temp\Test        若在Test这个文件夹下存在其他文件夹,可以进入到其他的文件夹中

FTPClient对象的changeWorkingDirectory()方法能够进入到其他文件夹,传入的参数为文件夹名称(String类型),此方法返回值为boolean类型。

注:

  • 若此方法传入的文件夹名称(AAa)存在,则直接进入访问目标文件夹
  • 若AAa文件夹不存在,可以使用FTPClient对象的makeDirectory()方法创建文件夹,参数为要创建的文件夹名称。
boolean isChange = ftpClient.changeWorkingDirectory("AAa");

四、文件上传

(1)、设置文件格式

FTPClient对象的setFileType()方法能够设置文件格式,参数为FTPClient类中定义的,例如FTPClient.BINARY_FILE_TYPE代表二进制文件。

(2)、文件上传

FTPClient对象的storeFile(A,B)方法。

参数A:上传到服务器后的文件名称+后缀

参数B:本地文件的输入流

示例代码:

FileInputStream in = new FileInputStream("D:\\Temp\\Test\\火影.png")

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(System.currentTimeMillis()+".png", in);//in是本地文件的输入流

五、将服务器中的文件下载到本地

和文件上传相比,设置文件格式类型的操作完全一致。

文件下载的具体操作要使用FTPClient对象的retrieveFile(A,B)方法,返回值类型是boolean。

参数A:要下载的服务器端的文件名称

参数B:文件输出流

示例代码如下:

FileOutputStream out = new FileOutputStream("D:\\Temp\\Test\\"+System.currentTimeMillis()+".jpg")
boolean is = ftpClient.retrieveFile("AAa.jpg", out);

注:

输出流中的文件路径:要将服务器下载到本地哪个地方

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值