从Java走入FTP协议

要连接FTP服务器首先要知道端口号与用户名密码

首先进入Ftpconsole.exe

在这里我们就可以看见端口号和主机号

 点击小人创建用户名和密码

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

package com.aPesource.day3;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

//import javax.xml.crypto.Data;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

public class IS_FTP {
	public static void main(String[] args) {
//		创建基于FTP协议访问文件服务器的客户端
		FTPClient ftp=new FTPClient();
		try {
//			第1步:连接ftp服务器并验证用户名密码
			ftp.connect("192.168.254.123",21);
			ftp.login("admin", "123456");
//			第2步
			boolean op=ftp.changeWorkingDirectory("img");
			if(op) {
//				切换成功:显示img目录下的所有文件
				SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日");
//				获取当前目录中的所有文件
				FTPFile[] ftplist=ftp.listFiles();
				for(FTPFile file:ftplist) {
//					文件名称中包含中文乱码
					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()+"字节");
				}
			}else {
//				创建制定目录
				ftp.makeDirectory("img");
			}
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 基于FTP协议的文件上传:

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;

//基于FTP协议的文件上传
public class FTPsend {
	public static void main(String[] args) {
//		创建基于FTP协议访问文件服务器的客户端对象
		FTPClient ftp=new FTPClient();
		try(FileInputStream i=new FileInputStream("C:\\Users\\Lenovo\\Desktop\\微信图片_20230708095429.jpg")) {
//			第一步:连接FTP服务器并验证用户名密码
			ftp.connect("192.168.155.123",21);
			ftp.login("admin", "123456");
//			第2步:切换个人目录
			boolean op=ftp.changeWorkingDirectory("suhan");
			if(!op) {
//				创建个人目录
				ftp.makeDirectory("suhan");
//				切换
				ftp.changeWorkingDirectory("suhan");
				
			}
//			第3步:文件上传
			ftp.setFileType(ftp.BINARY_FILE_TYPE);
//			存文件至FTP服务器
//			参数1:FTP文件的名称
//			参数2:本地文本输入流
			boolean istrue=ftp.storeFile(System.currentTimeMillis()+".jpg", i);
			System.out.println("文件上传成功?"+istrue);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 基于FTP协议的文件下载:

package com.aPesource.day3;

import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;
//基于FTP协议的文件下载
public class FTPdown {
	public static void main(String[] args) {
//		创建基于FTP协议访问文件服务器的客户端
		FTPClient ftp=new FTPClient();
		try (FileOutputStream out=new FileOutputStream("E:\\图片\\"+System.currentTimeMillis()+".jpg")){
//			第一步:连接ftp服务器并验证用户名密码
			ftp.connect("192.168.19.1",21);
			ftp.login("suhan", "Zs200237");
//			第2步:切换至个人目录
			boolean op=ftp.changeWorkingDirectory("img");
//			第3步:下载制定文件
			ftp.setFileType(ftp.BINARY_FILE_TYPE);
			boolean isdown=ftp.retrieveFile("s33740034.jpg", out);
			System.out.println("下载成功?"+isdown);
		} catch (SocketException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
//				断开连接
				ftp.disconnect();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				ftp=null;
			}
		}
		
	}
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值