如何在java中解析这个文本文件?

时间:2014-03-18 14:04:57

标签: java file parsing date pattern-matching

我必须在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的值等等)

我必须在二维表中解析它以绘制图表。

我不知道该怎么做。

有什么想法吗?

感谢。

1 个答案:

答案 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