控制台輸入
導入 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)