具有条件的Java读取文本文件

时间:2015-05-24 22:44:53

标签: java split bufferedreader

我只是想知道是否有办法阅读文本文件并跳过包含特定字符串的行。

例如(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,(",")); 
    }

先谢谢你们!

2 个答案:

答案 0 :(得分:0)

类似的东西:

line = it.nextLine();

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

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

为什么使用StringUtils分割线? String类支持split(...)方法。

我建议您阅读String API以获取基本功能。

答案 1 :(得分:0)

您还可以使用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/)。