用Java解析平面文件

我有一个平面文件,其中数据以基于位置的格式存储。例如。 从1到5 – 存储了一些x值,从6到13 – 存储了一些y值,从14到18 – 存储了一些z值等等。我需要解析文件并获取这些值并填充豆。

任何人都可以请告诉我,我可以解决它的最佳方式意味着我可以解析文件。我正在使用Java 6。

在普通的java中,非复杂的,固定长度的行应该非常容易。

你为什么不只使用普通的基本子串? 我已经看到这用于解析相当大的平面文件,并没有它听起来那么糟糕。 很容易从中获得概述。

 myObject.setX(Integer.parseInt(input.substring(0,4))); myObject.setY(input.substring(5,12); .. 

如果你真的认真地将几个大型平面文件映射到java,你可能想要使用一些库。

Smooks让你在XML文件中指定映射,并将smooks运行时映射从字段到对象。 还有一个用于图形映射的Eclipse IDE。 这个库有点重量级。

我非常喜欢Apache Camel中的Bindy组件。 它需要引入消息路由器的开销,但是可以注释普通的java类,并且可以一次性完成映射和java类。

 // Like this @FixedLengthRecord(length=54, paddingChar=' ') public static class Order { @DataField(pos = 1, length=2) private int orderNr; @DataField(pos = 3, length=2) private String clientNr;