gpt4 book ai didi

java - 如何将多个文件中的数据合并到一个缓冲区中?

转载 作者:行者123 更新时间:2023-12-02 03:09:09 24 4
gpt4 key购买 nike

我想使用多个文件中的数据创建一个流。我怎样才能做到呢?有我的java类(class)。或者也许我不应该使用 BufferReader 而应该使用其他方式?谢谢!!

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.stream.Stream;

public class BuffReader {

public static void main(String[] args) throws FileNotFoundException {
File file1 = new File("src/page_1.txt");
File file2 = new File("src/page_2.txt");
File file3 = new File("src/page_3.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file1));

//*** I'd like get one bufferedReader with file1 + file2 + file3.

Stream<String> stream = bufferedReader.lines(); // get Stream
stream.forEach(e -> System.out.println(e)); // Working with Stream
}
}

最佳答案

您可以从 BufferedReader 为每个文件创建一个 Stream,将它们组合成一个流,然后使用 Stream#flatMap方法来创建一个由所有这些串联而成的流。

import java.util.function.Function;
import java.util.stream.Stream;

public class CombinedStreams
{
public static void main(String[] args)
{
Stream<String> stream0 = Stream.of("line0", "line1");
Stream<String> stream1 = Stream.of("line2", "line3");
Stream<String> stream2 = Stream.of("line4", "line5");

Stream<String> stream = Stream.of(stream0, stream1, stream2)
.flatMap(Function.identity());

stream.forEach(e -> System.out.println(e));
}
}

(感谢diesieben07提出的改进建议!)

关于java - 如何将多个文件中的数据合并到一个缓冲区中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314319/

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