Java 读取有条件的文本文件

Java Read Text file with condition

我只是想知道是否有一种方法可以读取文本文件并跳过包含特定字符串的行。

例如 (test1.txt):

test0,orig,valid,nice
test1,input,of,ol,[www]
test2,[eee],oa,oq
test3,wa,eee,string,int
test4,asfd,eee,[tsddas],wwww

预期输出:

test0,orig,valid,nice
test3,wa,eee,string,int

我已经有了这个代码:

String line;
String test[];

try{
    LineIterator it = FileUtils.lineIterator(file2,"UTF-8");
    while(it.hasNext()){                    
        line = it.nextLine();                    
        test = StringUtils.split(line,(",")); 
    }

提前谢谢大家!

类似于:

line = it.nextLine();

if (line.contains("specific string")) continue;

test = StringUtils.split(line,(",")); 

为什么要使用 StringUtils 来分割一行? String class 支持 split(...) 方法。

我建议您阅读字符串 API 了解基本功能。

您还可以使用 Java 8 Streaming API。它使这一切变得相当容易。

final List<String[]> rows = Files.lines(Paths.get(file2), "UTF-8")
        .filter(l -> !l.contains("["))
        .map(l -> l.split(","))
        .collect(Collectors.toList());

如果您想快速完成并且不想 运行 出现任何问题,您还应该考虑使用现有的 CSV 库。一个很好的例子是 Apache Commons CSV 库 (https://commons.apache.org/proper/commons-csv/)。