目录
一、连接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();
}
}