java - Java中解析固定格式的文本文件

标签 java string text text-parsing

假设我知道一种文本文件格式,

比如说,每行包含 4 个字段,如下所示:

firstword secondword thirdword fourthword
firstword2 secondword2 thirdword2 fourthword2
...

我需要将其完全读入内存

我可以使用这种方法:

open a text file
while not EOF
  read line by line
  split each line by a space
  create a new object with four fields extracted from each line
  add this object to a Set

好的,但是有没有更好的东西,一个特殊的第 3 方 Java 库?

这样我们就可以预先定义每个文本行的结构并使用某些函数解析文件

thirdpartylib.setInputTextFileFormat("format.xml");
thirdpartylib.parse(Set, "pathToFile")

最佳答案

如果您明确知道分隔符是什么,那么您建议的方法将快速可靠,并且代码开销非常小。第三方库(谷歌“java文本文件库”以获得一长串列表)的好处是它可能有一堆代码来处理作者关心的奇怪情况。缺点是,如果您正在处理简单且可靠的文本文件格式,那么它可能会比您需要的代码更多。

自己这样做的好处是,您可以根据您的要求调整代码,包括可扩展性问题,如果您有大量数据,这很可能是一个考虑因素。通常,第三方库会完整读取文件,如果您有数百万行,这可能不切实际。

我的建议是花一个小时左右编写自己的内容,看看会得到什么结果。您可以轻松破解它。如果事实证明您有一个复杂的问题需要解决,涉及数据格式的不同特殊问题,那么就开始寻找一个库。

关于java - Java中解析固定格式的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712709/

相关文章:

string - 是否可以在 Excel 单元格中执行多个彩色文本?

java - String.split() 和 ReplaceAll 从 Java 到 VB.net

java - 如何在 HSQLDB 1.8 中查找表的标识列

string - for 循环中的变量在每次迭代时都没有重新初始化?

java - 如何解析具有文本限定符的字符串

c - 输出到 printf 或 C 上的文件时出现异常的字符串连接

r - 仅对 R 中 ggplot 的第一个方面进行注释?

java - 从左边第二个斜线后剪切字符串

java - 如何打印数组直到有值。而不是完整数组?

text - 为什么每种语言都需要一个分词器?