读取不同长度的固定宽度文本文件

时间:2016-03-06 04:13:25

标签: java

我有一个固定宽度格式的文本文件,但每列的长度不同。我总共有大约100个专栏。

例如,文本的前几列具有以下宽度:

30
4
188

我们假设我从文件的第一行读到。如何将文本分隔/映射到100个不同大小的列?

1 个答案:

答案 0 :(得分:1)

我们刚刚在过去几周内处理了这个问题。我们解决问题的方法是创建一个带有相应“索引”的枚举类,以表示需要提取的字段的开始和结束位置。此枚举已加载到FIELD_NAME的地图中 - > RANGE(即0:8)在实例化解析消息的类时。

在收到队列中的消息时为高级别:

  • 将TextMessage转换为字符串
  • 读取行
  • 对于每个字段,从地图中获取相应的范围
  • 将范围拆分为“:”以获取索引
  • 使用子字符串(index1,index2)
  • 从String中提取值
  • 执行转换(字符串到日期,字符串到数字等)
  • 坚持到数据库