使用java 8以相反的顺序读取文件

时间:2017-09-01 07:12:53

标签: java java-8

以下是文件内容:

line 1
line 2
line 3
line 4
line 5

现在我想以反向顺序字符串读取文件,如下所示

line 5
line 4
line 3
line 2
line 1

我用来逐行读取文件的代码是

try (Stream<String> steam = Files.lines(Paths.get("C:\\..\\..\\taxreport.txt")).skip(1)) {
    steam.foreach(i->System.Out.Println(i));
} 
catch (IOException ex) {
    System.out.println(RED_BOLD + "File not Found !!");
}

代码按正常顺序逐行读取文件。但我想以相反的顺序阅读该行。

任何人都可以让我知道如何以相反的顺序阅读该行。

1 个答案:

答案 0 :(得分:2)

这适用于字符串:

steam.collect(Collectors.toCollection(LinkedList::new))
    .descendingIterator().forEachRemaining(System.out::println);

这是使用ArrayList的另一个例子:

    List<String> list = steam.collect(Collectors.toCollection(ArrayList::new));
    Collections.reverse(list);
    list.forEach(System.out::println);