使用Java8以相反顺序读取文件

使用Java8以相反顺序读取文件,java,java-8,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.Prin

以下是文件内容:

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 !!");
}
try(Stream-steam=Files.lines(path.get(“C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\taxreport.txt”)).skip(1)){
steam.foreach(i->System.Out.Println(i));
} 
捕获(IOEX异常){
System.out.println(红色“\u粗体+”未找到文件!!”;
}
代码按正常顺序逐行读取文件。但我想按相反的顺序读这行


有人能告诉我如何以相反的顺序读这行吗。

这适用于字符串:

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);
List List=steam.collect(collector.toCollection(ArrayList::new));
收款。反向(列表);
list.forEach(System.out::println);

这适用于字符串:

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);
List List=steam.collect(collector.toCollection(ArrayList::new));
收款。反向(列表);
list.forEach(System.out::println);

可能重复的可能重复您需要读取文件,将其存储在后进先出集合中,然后读取该集合。在文件中定位光标并不是一种“简单”的方法。所以这将在记忆中完成。没有理由否决这项投票。以上建议包括非Java8和IntStreams。这是文本。可能重复的可能重复您需要读取文件,将其存储在后进先出集合中,然后读取该集合。在文件中定位光标并不是一种“简单”的方法。所以这将在记忆中完成。没有理由否决这项投票。以上建议包括非Java8和IntStreams。这是文本。我们可能没有在这里使用堆栈吗?@HimanshuBhardwaj我不知道你的意思,但我添加了另一个示例。忽略我,在这里找到我问题的答案@Himanshu Bhardwaj:您可以使用
ArrayDeque
。它可以替代向量和链接列表。谢谢@Holger,我会尝试一下。我们可以不在这里使用堆栈吗?@HimanshuBhardwaj我不知道你的意思,但我添加了另一个例子。忽略我,在这里找到我问题的答案@Himanshu Bhardwaj:您可以使用
ArrayDeque
。它可以替代向量和链接列表。谢谢@Holger,我会尝试一下。