0

我有一个包含 100000 行的文本文件,如下所示

be3c152f6f6bcd5 AL9 60  51.7458349055774    -0.191050898942398  F

be3c15cd5   AL9 30  51.79055774 -0.191050898942398  M

现在我必须创建一个设计,我需要在其中阅读所有这些,并根据测试条件需要以我阅读的相同文件格式生成输出

我在想这可以通过

  1. 读取输入文件的所有行
  2. 把它们留在List<some pojo>

现在这个 pojo 将参考所有条件并生成 o\p

我的问题是循环 readline 1 l00000 次并生成 pojo 是否好?还在每个测试用例条件的最终 o\p 文件夹中,我必须将其转换List<pojo为上面我们阅读的文本格式。

请让我知道一些更好的方法。

4

3 回答 3

3

读线、处理线、写线。无需将它们全部保存在内存中。

于 2013-09-27T12:05:48.033 回答
0

解析记录是一个简单的问题。

您不希望List;中的每一行 在对每一行进行标记后,您希望 POJO 包含数据。

这是伪代码:

  1. 打开文件
  2. 循环遍历文件中的所有行
  3. 标记每一行并填充 POJO
  4. 将 POJO 添加到列表
  5. 关闭文件
  6. 在 POJO 上执行您希望的任何操作
  7. 以所需格式输出 POJO 列表

如果它只是制表符分隔,也许您可​​以使用已经处理 .csv 文件的库。

于 2013-09-27T12:06:37.400 回答
0

我假设,测试条件一次只取决于一行:

您应该输入和输出数据。处理完第一行(包括读取和解析)后,检查条件。如果该行应保留在输出中,您现在可以将其流式传输到(不同的)输出文件。如果它应该被删除,您可以忽略它并跳到输入的下一行。

创建一个将文件的不同列作为字段的元素听起来是个好主意。然后,您可以覆盖 String 以生成所需的输出和一个构造函数,该构造函数采用输入格式中的 String 来解析它。

于 2013-09-27T12:17:22.217 回答