比较java中具有特定结构的文件



我有两个具有特定结构的txt文件。应该有一些空行和一些数据行。像这样:

@RELATION Table
@RECORD 1
ID '5'
SOMETHING '10'

关键是,在一个文件中可以有10个"空"行,第二行可以没有,如果数据相等,这应该无关紧要。

如何有效地处理大文件?

BufferedReader应该用于读取文件,为其构造函数提供一个FileReader:https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html

所以你将有两个,每个文件一个。

有一个"无限循环",如:while(true){}

在这个容器循环中,应该有两个内部循环,每个文件一个。

在每个内部循环中,使用readLine()方法应该将光标移动到下一行。

在容器循环外声明this:

String lineFromFileA, lineFromFileB;

然后:

while((lineFromFileA = bufferedReaderA.readLine()) != null){
    if(!lineFromFileA.isEmpty())
        break;
}

对lineFromLineB做同样的操作。

上述循环的替代方法是:

while((lineFromFileA = bufferedReaderA.readLine()) != null && lineFromFileA.isEmpty());

在两个内部循环之后,lineFromFileA和lineFromFileB要么为空,要么有一个非空字符串的值。

如果两个文件都为空,则完成比较,两个文件相等,可以从函数返回true。

如果一个包含null而另一个不包含null,则返回false。

如果两个字符串都不为空,则检查equals()方法是否相同,如果不相同,则从函数返回false。如果它们相等,则不执行任何操作,容器循环的下一次迭代将处理下一行。

相关内容

  • 没有找到相关文章

最新更新