从java中的文本文件中读取行

时间:2017-05-15 22:39:48

标签: java bufferedreader filereader

我试图读取包含几个类似实体的.txt文件(见下文)。指示要创建的对象实例的标记是“TYPE”。我需要为所有可能的序列做这项工作。是否有一种方法可以让我逐行读取文件,直到找到“TYPE”标签,然后在实体的开头返回以读取其他行?

 CONTRACT_LIST
 {
 CONTRACT
 {
 TIME_SPENT ***********
 TYPE *************
 .
 .
 .
 .
 PAYMENT_METHOD ***
 DISCOUNT *****
 }
 }

我在BufferedReader中使用FileReader。提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Java 8,则可以使用Files.readAllLines

例如:

    List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("UTF-8"));

    for(String line : lines) {
        if(line.contains("TYPE")) {
            //Do your Thing
        }
    }

答案 1 :(得分:0)

你可以将所有内容存储在类似的列表中 `

List<String> l = new ArrayList<>();
String line;
BufferedReader buffer = new BufferedReader(new InputStreamReader(yourInputstream));
line= buffer.readLine();
l.add(line);

while (line!=null && !line.equals("TYPE")){

    line= buffer.readLine();
    l.add(line);
}

` 不保证它有效(非常累(つ◕_◕)つ)