如何跳过以#开头的阅读行?

时间:2014-10-15 20:03:20

标签: java

我想编写一个从.txt文件中读取许多值的程序。应跳过以#开头的行。

String a,b,c,d,e,f...;  
File file=new File("test.txt");  
BufferedReader reader=new BufferedReader(new FileReader(file));

a=reader.readLine();  
b=reader.readLine();  
c=reader.readLine();  
......  
reader.close();

3 个答案:

答案 0 :(得分:2)

首先,不要将每个String存储在很多变量中,而是使用Collection。对于这种情况,List<String>就足够了。

然后,只需阅读BufferedReader中的新行,然后检查它是否以#字符开头。如果是,请不要将其添加到List

List<String> fileData = new ArrayList<>();
String line;
BufferedReader reader=new BufferedReader(new FileReader(file));
while ( (line = reader.readLine()) != null) {
    if (line.charAt(0) != '#') {
        fileData.add(line);
    }
}
reader.close();
//use the content of fileData to parse your file as expected

答案 1 :(得分:0)

首先,您应该将这些行存储在数据结构中。因此,您将使用循环遍历文本文件中的所有行,并使用if语句,只有当它不以#

开头时才存储该行

答案 2 :(得分:0)

虽然 Luggi Mendoza 的答案是正确的,但java 8允许以更优雅的方式完成。

List<String> strings = Files.lines(Paths.get("test.txt"))
        .filter(s -> !s.startsWith("#"))
        .collect(Collectors.toList());