如何用Java解析位于FTP中的txt文件

  • 在Java开发过程中,有些时候可能会遇到解析FTP中文件的问题,在此我们以txt格式为例子,来进行一次对FTP的访问。
    首先是对一个文件的解析,我们使用properties文件来存储对访问FTP的一些基本配置:
    对单个文件解析的配置文件

  • 如果FTP不需要账户密码的话,默认是anonymous;ftpHost为FTP地址。

//读取配置文件
InputStream propertiesIn = getClass().getClassLoader().getResourceAsStream(ftpConfigName + ".properties");
if (propertiesIn == null) {
    logger.info("配置文件读取失败");
}
  • 然后将配置文件中的基本信息一一获取:
String ftpUserName = properties.getProperty("ftpUserName");
String ftpPassword = properties.getProperty("ftpPassword");
String ftpHost = properties.getProperty("ftpHost");
String fileName = properties.getProperty("fileName");
String filePath = properties.getProperty("filePath");
  • 连接服务器,跳转至操作路径:
FTPClient ftpClient = new FTPClient();
try {
    ftpClient.connect(ftpHost);
    ftpClient.login(ftpUserName, ftpPassword);
    ftpClient.changeWorkingDirectory(filePath);
} catch (IOException e) {
    e.printStackTrace();
}
  • 获取该路径下的目录,与数据文件中一一比对
FTPFile[] file = new FTPFile[0];
try {
    file = ftpClient.listFiles();
} catch (IOException e) {
    logger.error("获取路径出错");
    e.printStackTrace();
}
  • 遍历比对:
for (int i = 0; i < file.length; i++) {
    String name = file[i].getName();
    if (fileName.equals(name)) {
        try (InputStream in = ftpClient.retrieveFileStream(name)) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
            ftpClient.completePendingCommand();//完成挂起。可重复读取
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
    }
}
  • 如果是对该文件夹下所有的文件进行解析,则可以跳过比对步骤,如果要求特定格式文件,可以对file.getName()进行操作并比较。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值