将 InputStream 转换为流
Convert InputStream to Flow
我想读取一个文件内容并针对其内容的每一行发出一个流。所以,我必须实现一个具有以下签名的函数:
fun InputStream.linesToFlow(): Flow<String>
有没有办法实现这个功能?
你可以做到
fun InputStream.linesToFlow(): Flow<String> = channelFlow<String> {
reader().forEachLine { line ->
offer(line)
}
}
我也找到了以下解决方案:
fun InputStream.linesToFlow() = bufferedReader().lineSequence().asFlow().flowOn(Dispatchers.IO)
我想读取一个文件内容并针对其内容的每一行发出一个流。所以,我必须实现一个具有以下签名的函数:
fun InputStream.linesToFlow(): Flow<String>
有没有办法实现这个功能?
你可以做到
fun InputStream.linesToFlow(): Flow<String> = channelFlow<String> {
reader().forEachLine { line ->
offer(line)
}
}
我也找到了以下解决方案:
fun InputStream.linesToFlow() = bufferedReader().lineSequence().asFlow().flowOn(Dispatchers.IO)