java - 如何用java解析这个文本文件?

标签 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
...

在每一行中: -第一列是日期(dd/mm/yyyy) -第二个是小时 (hh:mm) -从第三个到第八个,每十分钟有一个值(例如:15581是00:00的值,15647是00:10的值,依此类推...)

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

我不知道该怎么做。

有什么想法吗?

谢谢。

最佳答案

我会在对象类上使用@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 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

关于java - 如何用java解析这个文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481783/

相关文章:

JavaFX "Location is required."即使它在同一个包中

java - 在动态数组中存储字符串+整数对?

c++ - 用文件内容的第一行替换文件名

parsing - 标准化 NFL 球队名称

java - 如何拆分句子?

java - 在 Java 编译期间预计算纹理

java - 交换方法java的问题

java - 从 servlet 过滤器提供静态文件

php - Laravel 支持 return Redirect::back()->withFile() 吗?

c++ - 解释器开发期间解析 token 问题