控制台输入
导入 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)