Java从FTP服务器中获取PDF文件数据

Java 直接读取本地磁盘的PDF文件很容易,但是要从FTP中获取文件数据缺需要使用工具来连接到FTP服务器,之后才能从中获取到相应的文件数据

操作系统类型:windows

开发工具: idea

项目管理:maven

需要的jar包

org.apache.commonscommons-lang33.3.2commons-iocommons-io2.4org.apache.commonscommons-collections44.0commons-loggingcommons-logging1.1.3commons-codeccommons-codec1.8commons-beanutilscommons-beanutils1.8.3commons-chaincommons-chain1.2commons-fileuploadcommons-fileupload1.3.1org.apache.commonscommons-math33.3org.apache.commonscommons-pool22.2org.apache.commonscommons-digester33.2commons-netcommons-net3.3commons-dbutilscommons-dbutils1.5org.apache.commonscommons-email1.3.3commons-dbcpcommons-dbcp1.4

执行程序

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;import java.io.IOException;
import java.io.InputStream;
/*** Created with CosmosRay** @author CosmosRay* @date 2019/6/12* Function:*/
public class PDFTest {public static void main(String[] args) {//FTP服务器的IPString ftpIp = "192.168.19.129";//FTP服务器的端口Integer ftpPort = 21;//FTP服务器的用户名String ftpName = "admin";//FTP服务器的密码String ftpPass = "admin";//在FTP服务器中改查询的文件所在目录String ftpDocument = "/";byte[] b = new byte[512];//文件名称String fileName = "650000.pdf";/***  登录ftp,获取事件*  这里是ip,用户名,密码*/FTPClient ftp = PDFTest.ftp(ftpIp, ftpPort, ftpName, ftpPass);if (null != ftp) {try {// 更改当前工作目录为文件所在的目录ftp.enterLocalPassiveMode();ftp.changeWorkingDirectory(ftpDocument);// 从ftp上获取pdf目录下的文件
//                FTPFile[] file = ftp.listFiles();// 遍历所有文件,匹配需要查找的文件int status = ftp.getReplyCode();System.out.println("FTP status = " + status);// 通过文件名称匹配到的文件流传入接口,转化成数组集合InputStream in = ftp.retrieveFileStream(fileName);int n = 0;while ((n = in.read(b)) != -1) {System.out.println("n  =  =:" + n);
//                    out.write(b, 0, n);}//将字节流传往jsp
//                out.flush();
//                in.close();
//                out.close();} catch (IOException e) {e.printStackTrace();}}}/*** 功能描述** @return org.apache.commons.net.ftp.FTPClient* @author CosmosRay* @date 2019/6/12*/private static FTPClient ftp(String ip, int port, String user, String password) {FTPClient ftpClient = new FTPClient();try {//连接服务器登录服务器ftpClient.connect(ip, port);ftpClient.login(user, password);ftpClient.setFileType(FTP.BINARY_FILE_TYPE);// 是否成功登录服务器int replyCode = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(replyCode)) {System.out.println("connect failed...ftp:" + ip);} else {System.out.println("connect successfu...ftp:" + ip);}} catch (IOException e) {e.printStackTrace();}if (!ftpClient.isConnected()) {ftpClient = null;}return ftpClient;}
}

输入内容

connect successfu...ftp服务器:192.168.19.129
FTP status = 250

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部