Scala文件IO操作中文件默认以什么模式打开?
Scala标准库本身没有提供和Python open() 完全对等的通用文件打开顶层函数,主流使用场景下的默认模式规则如下:
- 最常用的文本读取场景下,大家普遍调用
scala.io.Source的fromFile方法,该方法默认就是只读文本模式,和Pythonopen()默认的r模式行为完全一致,默认使用当前平台的编码解析文本,也支持手动传入编码参数自定义。
示例代码:import scala.io.Source val source = Source.fromFile("demo.txt") // 无需指定模式,默认只读读取文本 - 如果直接调用Java生态的文件操作API(Scala完全兼容Java IO/NIO工具类):
所有读取向的API(比如FileReader、Files.newInputStream)默认都是只读模式;所有写取向的API(比如FileWriter、Files.newOutputStream)默认是覆盖写入模式,对应Pythonopen()的w模式,不存在跨API的统一默认模式,需要根据你选择的具体方法确定行为。 - 如果你需要更接近Python
open()的灵活模式切换能力,通常会引入os-lib、better-files等第三方Scala文件工具库,这类库的通用文件打开方法,默认也统一采用只读模式。
内容的提问来源于stack exchange,提问作者Zircoz
相关产品推荐
相关产品推荐

