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/)。
我只是想知道是否有一种方法可以读取文本文件并跳过包含特定字符串的行。
例如 (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/)。