一、前言:输入输出是 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