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