2
我已經創建了一個函數,我將其作爲輸入流的參數並返回一個由字符串組成的迭代器。我做到這一點,如下所示:在讀取行期間Source.fromInputStream異常處理
def lineEntry(fileInputStream:InputStream):Iterator[String] = {
Source.fromInputStream(fileInputStream).getLines()
}
我使用的方法如下:
val fStream = getSomeInputStreamFromSource()
lineEntry(fStream).foreach{
processTheLine(_)
}
現在是完全可能的,如果遇到人品不好,而它的遍歷方法lineEntry可能會炸燬inputstream使用foreach。
有什麼方法可以對付這種情況? (斯卡拉2.10)
謝謝。看來onMalformedInput在我的編譯器版本中不存在scala.Source.IO.Codec.UTF8。這是一個2.10功能嗎?我使用的是2.9.2 – 2013-04-06 00:36:29
我試着這樣做:隱式val codec = Codec.UTF8.newDecoder() codec.onMalformedInput(CodingErrorAction.IGNORE) – 2013-04-06 00:44:45
@sc_ray這可能不起作用。請參閱我的編輯。 – ghik 2013-04-06 00:54:34