3

我想读取文件内容并为其内容的每一行发出一个流。所以,我必须实现一个具有以下签名的函数:

fun InputStream.linesToFlow(): Flow<String>

有没有办法实现这个功能?

4

2 回答 2

6

我也找到了以下解决方案:

fun InputStream.linesToFlow() = bufferedReader().lineSequence().asFlow().flowOn(Dispatchers.IO)
于 2020-05-16T08:13:35.783 回答
-1

你可以这样做

fun InputStream.linesToFlow(): Flow<String> = channelFlow<String> {
    reader().forEachLine { line -> 
        offer(line)
    }
}
于 2020-05-15T18:16:52.480 回答