本文实例为大家分享了Java使用FTPClient类读写FTP的具体代码,供大家参考,具体内容如下
1。首先先导入相关的jar包
2。创建一个连接FTP的工具类FTPUtil。java
包com.metarnet.ftp.util; 进口java.io.IOException; 进口java.io.InputStream; 进口java.net.SocketException; 进口java.util.Properties; 进口org.apache.commons.net.ftp.FTPClient; 进口org.apache.commons.net.ftp.FTPReply; 进口org.apache.log4j.Logger; 公开课FTPUtil { 私有静态日志记录器=Logger.getLogger (FTPUtil.class);/* * *获取FTPClient对象 * @param ftpHost FTP主机服务器 * @param ftpPassword FTP登录密码 * @param ftpUserName FTP登录用户名 * @param ftpPort FTP端口默认为21 * @return */公共静态FTPClient getFTPClient (ftpPassword ftpHost的字符串,字符串, 字符串ftpUserName, int ftpPort) { FTPClient FTPClient=零; 尝试{ ftpClient=new ftpClient (); ftpClient。连接(ftpHost ftpPort);//连接FTP服务器 ftpClient。登录(ftpUserName ftpPassword);//登陆FTP服务器 如果(! FTPReply.isPositiveCompletion (ftpClient.getReplyCode ())) { logger.info(“未连接到FTP,用户名或密码错误。”); ftpClient.disconnect (); 其他}{ logger.info (“FTP连接成功。”); } }捕捉(SocketException e) { e.printStackTrace (); logger.info (“FTP的IP地址可能错误,请正确配置。”); }捕捉(IOException e) { e.printStackTrace (); logger.info (“FTP的端口错误,请正确配置。”); } 返回ftpClient; } } >之前3。编写一个读取FTP上文件的类ReadFTPFile。java
包com.metarnet.ftp.read; 进口java.io.BufferedReader; 进口java.io.FileInputStream; 进口java.io.FileNotFoundException; 进口java.io.IOException; 进口java.io.InputStream; 进口java.io.InputStreamReader; 进口java.net.SocketException; 进口org.apache.commons.net.ftp.FTPClient; 进口org.apache.log4j.Logger; 进口com.metarnet.ftp.util.FTPUtil; 公开课ReadFTPFile { 私人日志记录器=Logger.getLogger (ReadFTPFile.class);/* * *去服务器的FTP路径下上读取文件 * * @param ftpUserName * @param ftpPassword * @param ftpPath * @param FTPServer * @return */ftpPassword ftpUserName readConfigFileForFTP公共字符串(字符串,字符串, 字符串ftpPath、字符串ftpHost int ftpPort字符串文件名){ StringBuffer resultBuffer=new StringBuffer (); FileInputStream inFile=零; InputStream=零; FTPClient FTPClient=零; logger.info(“开始读取绝对路径”+ ftpPath +“文件!”); 尝试{ ftpClient=FTPUtil。getFTPClient (ftpHost ftpPassword ftpUserName, ftpPort); ftpClient.setControlEncoding (“utf - 8”);//中文支持 ftpClient.setFileType (FTPClient.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode (); ftpClient.changeWorkingDirectory (ftpPath); 在=ftpClient.retrieveFileStream(文件名); }捕捉(FileNotFoundException e) { 记录器。错误(“没有找到“+ ftpPath +“文件”); e.printStackTrace (); 回报”下载配置文件失败,请联系管理员。”; }捕捉(SocketException e) { logger.error(“连接FTP失败。”); e.printStackTrace (); }捕捉(IOException e) { e.printStackTrace (); logger.error(“文件读取错误。”); e.printStackTrace (); 返回“配置文件读取失败,请联系管理员。”; } 如果(在!=null) { BufferedReader br=new BufferedReader(新InputStreamReader ()); 字符串数据=https://www.yisu.com/zixun/null; 尝试{ 在((数据=br.readLine ()) !=null) { resultBuffer。追加(数据+“\ n”); } }捕捉(IOException e) { logger.error(“文件读取错误。”); e.printStackTrace (); 返回“配置文件读取失败,请联系管理员。”; 最后}{ 尝试{ ftpClient.disconnect (); }捕捉(IOException e) { e.printStackTrace (); } } 其他}{ logger.error(”为空,不能读取。”); 返回“配置文件读取失败,请联系管理员。”; } 返回resultBuffer.toString (); } }Java使用FTPClient类读写FTP