sel*_*man 7 java inputstream stream bufferedreader
我有一些来自不同文件的数据流。它的格式如下:
Stream<String> linesModifiedAndAppendedFromVariousFiles=getLines();
Run Code Online (Sandbox Code Playgroud)
但是,我需要将其提供给接受 InputStream 或 Reader 作为参数的库方法。
如何将此 Java 8 流馈送到 InputStream 或某种类型的 Reader 中?
PS:这不是关于将 java.util.streams.Stream 包装在 InputStream 周围。我正在寻找的是相反的方式。
您可以使用PipedReader和PipedWriter来完成此操作。
PipedReader reader = new PipedReader();
Runnable feeder = new Runnable() {
@Override
public void run() {
try (PipedWriter writer = new PipedWriter(reader)) {
linesModifiedAndAppendedFromVariousFiles.forEachOrdered(line -> {
try {
writer.write(line);
writer.write('\n');
} catch (IOException e) {
throw new UncheckedIOException(e);
}
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
};
new Thread(feeder).start();
someLibraryMethod.consumeReader(reader);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6933 次 |
| 最近记录: |