繁体   English   中英

如何从Java 8中的文本文件读取特定行?

[英]how can i read specific lines from a textfile in java 8?

因此,我需要逐行读取文本文件,然后按字符串返回它们。 我可以指定要从哪一行读取的内容。

我的课有3种方法:

public class FilePartReader {

    String filePath;
    Integer fromLine;
    Integer toLine;

    public FilePartReader() { }

    public void setup(String filepath, Integer fromLine, Integer toLine) {
        if (fromLine < 0 || toLine <= fromLine) {
            throw new IllegalArgumentException(
                    "fromline cant be smaller than 0 and toline cant be smaller than fromline");
        }
        this.filePath = filepath;
        this.fromLine = fromLine;
        this.toLine = toLine;
    }

    public String read() throws IOException {
        String data;
        data = new String(Files.readAllBytes(Paths.get(filePath)));
        return data;
    }

    public String readLines() {
        return "todo";
    }
}

read()方法应打开文件路径,并以字符串形式返回内容。 readLines()应该使用read()读取文件,并从fromLine和toLine之间的内容中退回每一行(都包括在内),并将这些行作为String返回。 现在,我不确定read()是否正确实现,因为如果我理解正确,它将以一个大String形式返回整个内容,也许对此有更好的解决方案? 另外,如何使fromLine / toLine工作? 提前致谢

您可以使用Files.lines返回所有行的Stream<String>并将skiplimit应用于结果流:

Stream<String> stream = Files.lines(Paths.get(fileName))
                             .skip(fromLine)
                             .limit(toLine - fromLine);

这会给你一个Stream从起始线fromLine ,并在结束toLine 之后,您可以将其转换为数据结构(例如列表),也可以执行任何需要做的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM