Scala IO
最近接觸了Scala語言 最基礎的就是讀文件操作數據了 可是發現使用
Source.fromFile(inputFile)
多次讀取文件時出現了第二次讀取時數據爲空的問題
先看下問題:
在主函數中調用Source.fromFile(inputFile) 的 getLines() 方法讀取文件,如果需要對文件遍歷兩次,則第二次獲取爲空。
val inputFile = "/Users/BITDDD/scala files/abc"
val inputSource = Source.fromFile(inputFile)
println("第一次讀取ing")
for (line <- inputSource.getLines()){
println(line)
}
println("第二次讀取ing")
for (line <- inputSource.getLines()){
println(line)
}
解決方法:
第一次遍歷文件時將 getLine() 方法獲得的內容放入Array中,這樣在需要多次遍歷的情況下就不會出現第二次調用爲空的情況。
val inputFile = "/Users/BITDDD/scala files/abc"
val inputSource = Source.fromFile(inputFile)
val arr = inputSource.getLines().map(_.toString).toArray
println("第一次讀取ing")
for (line <- arr){
println(line)
}
println("第二次讀取ing")
for (line <- arr){
println(line)
}
問題搞定~