gpt4 book ai didi

java - 如何从 InputStream 创建基于行的可观察对象?

转载 作者:行者123 更新时间:2023-12-02 20:06:30 33 4
gpt4 key购买 nike

抱歉这个基本问题...我有一个函数,它接受一个带有文件内容的 InputStream,并返回一个对象列表,比方说 Person。

输入文件的每一行都有一个人,所以我想逐行解析。没有什么困难,但是...这次我想使用响应式编程。

类似于:

public List<Person> parse(final InputStream is) throws IOException {
return
//create an observable which will split the input in many lines, "\n"
.map(Person::new)
.collect(toList());
}

我错过了注释的步骤,即:创建一个不是基于字节而是基于行的可观察对象。

最佳答案

您可以使用方法 lines 创建 Stringstream BufferedReader:

Returns a Stream, the elements of which are lines read from this BufferedReader.

使用与此类似的代码:

Stream<String> lines = new BufferedReader(new InputStreamReader(is, cs)).lines();

所以你的代码应该是这样的:

public List<Person> parse(final InputStream is) throws IOException {
CharSet cs = ... // Use the right charset for your file
Stream<String> lines = new BufferedReader(new InputStreamReader(is, cs)).lines();
return lines
.map(Person::new)
.collect(toList());
}

关于java - 如何从 InputStream 创建基于行的可观察对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54536217/

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