FTP文件传输协议

目录

一、连接FTP服务器,显示文件列表

二、基于FTP协议的文件上传

三、基于FTP协议的文件下载


一、连接FTP服务器,显示文件列表

        1、连接FTP服务器并验证用户密码

        2、显示当前目录中的所有文件

        3、创建指定目录

示例代码

//创建基于HTTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();
		
		
//连接ftp服务器并验证用户密码
try {
ftpClient.connect("",);//主机的IP地址  端口号
ftpClient.login("", "");//用户名  密码
	
//切换目录			
boolean isChange = ftpClient.changeWorkingDirectory("xxx");//目录名称
if(isChange) {
	
//切换成功,显示	xxx目录下的所有文件		
SimpleDateFormat fmt = new SimpleDateFormat("yyyy月MM月dd日");
				
//获取当前目录中的所有文件
FTPFile[] ftpFileList = ftpClient.listFiles();
for(FTPFile file : ftpFileList) {
//文件名称中包含中文乱码
String fileName = file.getName();
fileName = new String(fileName.getBytes("iso-8859-1"),"gb2312");
System.out.println("文件名称:"+fileName);
					
Date createDate = file.getTimestamp().getTime();
System.out.println("创建时间:"+fmt.format(createDate));
					
System.out.println("文件大小:"+file.getSize()+"字节");
					
System.out.println();
	} 
		}else {
			//创建指定目录
			ftpClient.makeDirectory("xxx");
				}
			}catch (SocketException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}

二、基于FTP协议的文件上传

        1、连接FTP服务器并验证用户名密码

        2、切换至个人目录

        3、文件上传

示例代码

//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();
try(FileInputStream in = new FileInputStream("D:\\照片\\pictures\\彩虹.jpg"))
		{
        //1、连接FTP服务器并验证用户密码
		ftpClient.connect("",);//IP地址  端口号
		ftpClient.login("", "");//用户名  密码
		
        //2、切换至个人目录	
		boolean isChange = ftpClient.changeWorkingDirectory("xxx");
			
		if(!isChange) {
            //创建个人目录
			ftpClient.makeDirectory("xxx");
            
            //切换
			ftpClient.changeWorkingDirectory("xxx");

		}
		System.out.println(ftpClient.printWorkingDirectory());
			
        //3、文件上传
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
		
       //存文件 文件的保存名称 本地文件的输入流	
      boolean isStore = ftpClient.storeFile(System.currentTimeMillis()+".jpg", in);
	  System.out.println("文件上传成功?"+isStore);
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

三、基于FTP协议的文件下载

        1、连接FTP服务器并验证用户名密码

        2、切换至个人目录

        3、下载指定文件

示例代码

//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();

try(FileOutputStream out = new FileOutputStream(
               "D:\\照片\\pictures\\download\\"+System.currentTimeMillis()+".jpg"));
		{
    //1、连接FTP服务器并验证用户名密码
	ftpClient.connect("",);//IP地址  端口号
	ftpClient.login("", "");//用户名  密码
		
    //2、切换至个人目录	
	boolean isChange = ftpClient.changeWorkingDirectory("qq");

    //3、下载指定文件			
	ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//文件类型
		
	boolean isRetrieve = ftpClient.retrieveFile("1.jpg", out);
	System.out.println("文件下载成功?"+isRetrieve);
			
} catch (FileNotFoundException e) {
	e.printStackTrace();
} 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、付费专栏及课程。

余额充值