Kotlin 将print()输出重定向到字符串而不是stdout
我试图将对象的print()函数的stdout重定向到字符串变量中 为此,我使用以下Java导入(在Kotlin中): 以及以下功能:Kotlin 将print()输出重定向到字符串而不是stdout,kotlin,inputstream,stdout,Kotlin,Inputstream,Stdout,我试图将对象的print()函数的stdout重定向到字符串变量中 为此,我使用以下Java导入(在Kotlin中): 以及以下功能: fun index(): String { val df_out = DataFrame.fromJson("https://jsonplaceholder.typicode.com/posts") val pipeOut = PipedOutputStream() val pipeIn = PipedInput
fun index(): String {
val df_out = DataFrame.fromJson("https://jsonplaceholder.typicode.com/posts")
val pipeOut = PipedOutputStream()
val pipeIn = PipedInputStream(pipeOut)
System.setOut(PrintStream(pipeOut));
df_out.print(maxRows = 10)
val dfAsStr = pipeIn.bufferedReader().use { it.readText() }
return dfAsStr
}
其思想是将print()
方法的输出捕获到PipedInputStream
中,以便能够将其作为(处理过的)字符串返回
此函数代码不终止 你可以试试这个。如果我没弄错你的问题
fun index(): String {
val df_out = DataFrame.fromJson("https://jsonplaceholder.typicode.com/posts")
val outStream = ByteArrayOutputStream().apply { System.setOut(PrintStream(df_out)) }
df_out.print(maxRows = 10)
return outStream.toString()
}
fun index(): String {
val df_out = DataFrame.fromJson("https://jsonplaceholder.typicode.com/posts")
val outStream = ByteArrayOutputStream().apply { System.setOut(PrintStream(df_out)) }
df_out.print(maxRows = 10)
return outStream.toString()
}