FTP(File Transfer Protocol):是应用层的一个文件传输协议 。主要作用是在服务器和客户端之间实现文件的传输和共享。FTP协议运行在TCP连接上,保证了文件传输的可靠性。
FTP服务器的搭建
1.启动Ftpconsole.exe
2.创建用户,设置权限
3.在浏览器中输入IP地址及端口号即可访问
使用FTPClient 实现文件的罗列并打印到控制台上
//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient=new FTPClient();
//连接ftp服务器并验证用户名密码
try {
ftpClient.connect("192.168.254.131",21);
ftpClient.login("admin", "123123");
boolean isChange=ftpClient.changeWorkingDirectory("zxy");
if(isChange) {
//获取当前目录的所有文件
FTPFile[] ftpFileList=ftpClient.listFiles();
//使用DataFormat设置日期格式
SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日");
for(FTPFile file:ftpFileList) {
//文件名称中包含中文乱码
String filename=file.getName();
filename=new String(filename.getBytes("iso-8859-1"),"gb2312");
System.out.println("文件名称:"+filename);
Date createData=file.getTimestamp().getTime();
System.out.println("创建时间:"+fmt.format(createData));
System.out.println("文件大小:"+file.getSize()+"字节");
}
}else {
ftpClient.makeDirectory("zxy");
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
使用FTPClient在服务器上创建个人目录,并上传文件
FTPClient ftpClient=new FTPClient();
try (FileInputStream in = new FileInputStream("F:\\猿究院学习资料\\test\\风景.jpg");
FileOutputStream out=new FileOutputStream("F:\\猿究院学习资料\\test\\xx.jpg")) {
ftpClient.connect("192.168.254.131",21);
ftpClient.login("admin", "123456");
boolean isChange=ftpClient.changeWorkingDirectory("zxy");
if(!isChange) {
//创建个人目录
ftpClient.makeDirectory("zxy");
//切换
ftpClient.changeWorkingDirectory("zxy");
}
System.out.println(ftpClient.printWorkingDirectory());
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//存储
boolean isStore=ftpClient.storeFile("aaa.jpg", in);
System.out.println(isStore);
使用FTPClent从服务器上下载文件并保存到本地
FTPClient ftpClient=new FTPClient();
try (FileOutputStream out=new FileOutputStream("F:\\猿究院学习资料\\test01\\xx.jpg")) {
ftpClient.connect("192.168.254.131",21);
ftpClient.login("admin", "123456");
boolean isChange=ftpClient.changeWorkingDirectory("zxy");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//下载
boolean isRetrieve=ftpClient.retrieveFile("aaa.jpg", out);
System.out.println(isRetrieve);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}