我必须在java中解析这样的txt文件:
01/01/2008 00:00 15581 15647 15646 15630 15641 15649
01/01/2008 01:00 15630 15628 15633 15617 15656 15680
01/01/2008 02:00 15622 15656 15668 15644 15681 15633
01/01/2008 03:00 15631 15665 15684 15648 15640 15634
01/01/2008 04:00 15615 15638 15637 15650 15646 15665
01/01/2008 05:00 15642 15651 15644 15640 15632 15638
01/01/2008 06:00 15633 15647 15632 15654 15635 15633
...
在每一行中: - 第一列是日期(年/月/日) - 第二个是小时(hh:mm) - 从第三到第八,它是每十分钟一些值(例如:15581是00:00的值,15647是00:10的值等等)
我必须在二维表中解析它以绘制图表。
我不知道该怎么做。
有什么想法吗?
感谢。
答案 0 :(得分:1)
我会在对象类上使用@FlrDataType,意思是固定长度记录。例如
@FlrDataType
public class MyRecord {
@FlrField(pos = 1, length = 10)
String date;
@FlrField(pos = 12, length = 5)
String time;
@FlrField(pos = 25, length = 5) //not sure on position 25, cant count your spaces
String value1;
//etc + getters/setters
}
然后在主文件中使用Deserializer来创建像这样的对象
Deserializer deserialMyRecord = FlrIOFactory.createFactory(MyRecord.class).createDeserializer();
然后使用StringReader读入您的文件
String rec = myFile.readLine();
StringReader reader = new StringReader(rec);
deserialMyRecord.open(reader);
while(deserialMyRecord.hasNext()) {
MyRecord myRecord = deserialMyRecord.next();
}
编辑*抱歉这个库是jsefa
org.jsefa.flr.annotation