Scala學習筆記-03-輸入、輸出


控制台輸入

導入 object:

import scala.io.StdIn

從控制台讀寫數據方法:
    readInt
    readDouble
    readByte
    readShort
    readFloat
    readLong
    readChar
    readBoolean
    readLine
   
    前8種方法沒有參數
    readLine可以不提供參數,也可以帶一個字符串參數的提示
參考:https://www.scala-lang.org/files/archive/api/2.11.12/#scala.io.StdIn$

 

控制台輸出

來源於scala.Predef(Predef是object),Predef對象會被所有的scala程序引用,因此該對象的成員可以直接使用,無序導入Predef

  • print()
  • println()
  • printf()

s插值字符串

scala> val i = 10

i: Int = 10

 

scala> val j = 3.3

j: Double = 3.3

 

scala> println(s"my age is $i, my dog's age is $j")

my age is 10, my dog's age is 3.3

 

f插值字符串

scala> val i = 10

i: Int = 10

 

scala> val j = 3.3

j: Double = 3.3

 

scala> printf(f"my age is $i%03d, my dog's age is $j%.5f") 

my age is 010, my dog's age is 3.30000

$i%03d:變量i以十進制(%d)數字輸出,一共3位,不足的左邊補充0

 $j%.5f:變量j以浮點(%f)數輸出,小數點(.)后保留5

 

 

格式化字符串輸出,除了上述的 printf,還可以使用如下方法:

 val str1 = "my age is %03d, my dog's age is %.5f".format(i,j)

str1: String = my age is 010, my dog's age is 3.30000

 

讀取文件

使用scala.io.Source object中的fromFile("***")方法讀取文件,再用 getLines方法返回 行的迭代器

scala> import scala.io.Source
import scala.io.Source

scala> val inputFile = Source.fromFile("/Users/walker/learn/mycode/scala/test.scala")
inputFile: scala.io.BufferedSource = non-empty iterator

scala> val lines = inputFile.getLines()
lines: Iterator[String] = non-empty iterator

scala> for(line <- lines) println(line)
object HelloWord{
    def main(args: Array[String]){
        println("Hello Word!")
    }
}

或者簡寫成:

scala> Source.fromFile("./test.scala").getLines().foreach(println)
object HelloWord{
    def main(args: Array[String]){
        println("Hello Word!")
    }
}

 

寫文件

使用java.io.printWriter類

scala> import java.io.PrintWriter
scala> val out = new PrintWriter("./io.test.output.txt")
scala> for(i <- 1 to 100) out.println(i)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM