Java从FTP服务器中获取PDF文件数据
Java 直接读取本地磁盘的PDF文件很容易,但是要从FTP中获取文件数据缺需要使用工具来连接到FTP服务器,之后才能从中获取到相应的文件数据
操作系统类型:windows
开发工具: idea
项目管理:maven
需要的jar包
org.apache.commons commons-lang3 3.3.2 commons-io commons-io 2.4 org.apache.commons commons-collections4 4.0 commons-logging commons-logging 1.1.3 commons-codec commons-codec 1.8 commons-beanutils commons-beanutils 1.8.3 commons-chain commons-chain 1.2 commons-fileupload commons-fileupload 1.3.1 org.apache.commons commons-math3 3.3 org.apache.commons commons-pool2 2.2 org.apache.commons commons-digester3 3.2 commons-net commons-net 3.3 commons-dbutils commons-dbutils 1.5 org.apache.commons commons-email 1.3.3 commons-dbcp commons-dbcp 1.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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
