要从Java中读取流,我会照常做到:
byte buff[] = new byte[10]
int len = 0;
while ((len = inputStream.read(buff)) != -1){
...do something with buff..
}
我知道scala提供Source.fromInputStream之类的东西,但老实说我觉得它有点沉重。我知道上面的内容不会在Scala中工作,因为赋值不会返回值。有没有使用图书馆的简单方法?
答案 0 :(得分:1)
可以关闭可变状态并像这样使用Iterator.continually
:
val buff = Array.ofDim[Byte](10)
Iterator.continually(inputStream.read(buff))
.takeWhile(_ != -1)
.foreach { len =>
// do something wit buff and len
}
或多或少直接翻译Java代码。但是,我会根据手头的任务来找到图书馆。