gpt4 book ai didi

java - 是否有从文件中读取前 n 行的实用方法?

转载 作者:行者123 更新时间:2023-12-01 01:22:41 27 4
gpt4 key购买 nike

我搜索了以下流行的库:

  • Guava - Fiels.readLines
  • 蔚来 - Files.readFirstLine 或 Files.readAllLines
  • ApacheCommons - FileUtils.readLines

  • 所有方法都将整个文件作为字符串集合读入内存。但这对于数千行的大文件没有用?是否有一个简单的方法调用来读取第一个 n任何这些库中的文件行?

    最佳答案

    使用 Java 8,您可以使用 Files.lines :

    List<String> readFirst(final Path path, final int numLines) throws IOException {
    try (final Stream<String> lines = Files.lines(path)) {
    return lines.limit(numLines).collect(toList());
    }
    }

    在 Java 8 之前,您可以很容易地自己编写一些东西:
    List<String> readFirst(final Path path, final int numLines) throws IOException {
    try (final BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
    final List<String> lines = new ArrayList<>(numLines);
    int lineNum = 0;
    String line;
    while ((line = reader.readLine()) != null && lineNum < numLines) {
    lines.add(line);
    lineNum++;
    }
    return lines;
    }
    }

    关于java - 是否有从文件中读取前 n 行的实用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104693/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com