使用 Vert.x 和 RxJava 读取行
Read lines using Vert.x and RxJava
我正在使用 Vert.x 文件系统 API 读取 属性 文件,需要对其进行一些转换。问题是文件不是逐行读取的,而是作为一个块读取的。
所以,假设我有这个 属性 文件:
name=abc
name=def
并使用此代码:
vertx.fileSystem().rxReadFile("/path/file.properties")
.map(buffer -> buffer.toString())
.subscribe(data -> {
System.out.println(">"+data);
}, err -> System.out.println("Cannot read the file: " + err.getMessage()));
我打印的是单个数据块:
>name=abc
name=def
我希望得到以下结果,因为我必须对每一行执行转换:
>name=abc
>name=def
你可以只替换这一行:
.map(buffer -> buffer.toString())
作者:
.flatMapObservable(buffer -> Observable.fromArray(buffer.toString().split("\n")))
上面的代码将按换行符拆分缓冲区并逐行发送到流。
我正在使用 Vert.x 文件系统 API 读取 属性 文件,需要对其进行一些转换。问题是文件不是逐行读取的,而是作为一个块读取的。 所以,假设我有这个 属性 文件:
name=abc
name=def
并使用此代码:
vertx.fileSystem().rxReadFile("/path/file.properties")
.map(buffer -> buffer.toString())
.subscribe(data -> {
System.out.println(">"+data);
}, err -> System.out.println("Cannot read the file: " + err.getMessage()));
我打印的是单个数据块:
>name=abc
name=def
我希望得到以下结果,因为我必须对每一行执行转换:
>name=abc
>name=def
你可以只替换这一行:
.map(buffer -> buffer.toString())
作者:
.flatMapObservable(buffer -> Observable.fromArray(buffer.toString().split("\n")))
上面的代码将按换行符拆分缓冲区并逐行发送到流。