Scala程序中的输出与输入

69 阅读1分钟

一、前言:输入输出是 Scala 开发的基础​

无论是日常调试、用户交互还是数据处理,输入输出(I/O)都是 Scala 程序的核心能力。本文将从最基础的控制台打印,到实用的用户输入,再到常用的文件读写,用「语法 + 案例」的形式拆解,新手也能快速上手,同时补充 Scala 特有的优雅写法和性能注意事项。​

二、输出操作:从简单打印到格式化输出​

Scala 提供多种输出方式,覆盖「快速调试」「格式化展示」「日志记录」等场景,其中println和字符串插值是最常用的基础操作。​

1. 基础打印:println 与 print(最常用)​

  • println:打印内容后自动换行,适合逐条输出信息​

  • print:打印内容后不换行,适合连续输出同一行内容​

2. 字符串插值:优雅拼接变量(Scala 特色)​

传统字符串拼接(如"Name: " + name)繁琐且易出错,Scala 的字符串插值支持直接嵌入变量,简洁又直观,常用三种语法:​

插值方式​语法​用途​示例​输出结果​
s 插值​s"内容${变量}"​直接嵌入变量 / 简单表达式​val name = "Bob"; s"Hello $name"​Hello Bob​
f 插值​f"内容${变量}格式"​格式化数值(类似 Java 的 printf)​val pi = 3.1415; f"Pi: $pi%.2f"​Pi: 3.14​
raw 插值​raw"内容${变量}"​保留原始格式(不转义特殊字符)​raw"Line1\nLine2"​Line1\nLine2​

实战案例:格式化输出用户信息​

3. 格式化打印:printf(兼容 Java 语法)​

若需要更精细的格式控制(如对齐、补零),可使用printf,语法与 Java 一致:​

三、输入操作:读取控制台用户输入​

获取用户输入需借助 Scala 的scala.io.StdIn工具类,无需额外导入,直接调用静态方法即可,常用三种场景:​

1. 读取字符串:readLine(最常用)​

  • 无参数:直接读取用户输入的一行内容(按回车结束)​​​

  • 带提示参数:简化代码,无需单独打印提示​

2. 读取数值:readInt/readDouble 等(自动类型转换)​

直接读取整数、浮点数等数值类型,避免手动转换,若输入格式错误会抛出异常,需注意处理:​

3. 读取单个字符:readChar​

读取用户输入的第一个字符(无需按回车,输入后立即返回):​

val gender = scala.io.StdIn.readChar("请输入性别(M/F):")​

println(s"你的性别标识:$gender") // 输入"M",输出:你的性别标识:M​