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)
}
问题搞定~