【问题标题】:reading lines from text file in java从java中的文本文件中读取行
【发布时间】:2017-05-15 22:39:48
【问题描述】:

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

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

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

【问题讨论】:

  • 完全错误的方法。您需要从左到右解析输入。你的方法效率极低。
  • @EJP 感谢您的提示。这是怎么做到的?

标签: java bufferedreader filereader


【解决方案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
        }
    }

【讨论】:

    【解决方案2】:

    您可以将所有内容存储在这样的列表中
    `

    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);
    }
    

    ` 不保证它有效(很累༼つ◕_◕༽つ)

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 2016-07-14
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多