我有一个平面文件,其中数据以基于位置的格式存储例如。从1 到 5 - 存储一些x值,从6 到 13 - 存储一些y值,从14 到 18 - 存储一些z值等等。我需要解析文件并获取这些值并填充豆。
谁能告诉我我能做的最好的方法是如何解析文件。我使用的是 Java 6。
我有一个平面文件,其中数据以基于位置的格式存储例如。从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;