Scala 之 讀取文件第二次沒有內容

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)
    }

問題搞定~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章