如何根据特定标准从文本文件中删除一行
问题描述:
想知道是否有人会知道如何遍历csv文件并基于一组规则删除各种行。或者,也可以将满足规则的行添加到新的output.csv文件中。如何根据特定标准从文本文件中删除一行
到目前为止,我已经设法读取csv文件并将每行添加到一个ArrayList。但是现在我需要对这些行应用一组规则(最好使用if语句)并删除不符合条件的行。
package codeTest;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) throws IOException {
String filename = "sample.csv";
try(Stream<String> stream = Files.lines(Paths.get(filename))){
stream.forEach(System.out::println);
try {
File inputFile = new File("sample.csv");
File outputFile = new File("Output.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
String strLine;
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
while((strLine = reader.readLine()) != null){
list.add(strLine);
}
System.out.println("\nTEST OUTPUT..........................\n");
Stream<String> lineToRemove = list.stream().filter(x -> x.contains("yes"));
} catch(Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
}
有什么建议吗? 如果有这样的事情,我在完整的编码器块。
答
您可以使用Files.write
方法:
List<String> filtered = Files.lines(Paths.get(filename)).
filter(x -> x.contains("yes")).collect(Collectors.toList());
Files.write(Paths.get("Output.txt"),filtered);
我将我的项目约束之内给它之前,让你知道 –
安东Balaniuc:我的IDE说:“名单不能被解析为一个类型” –
我的天堂”因此使用Java一年半的时间非常生疏。 –