【发布时间】:2017-09-18 19:03:41
【问题描述】:
我正在使用 Scala 读写一些文本文件。作为该语言的完整初学者,我想确保找到正确的方法来做到这一点,例如正确编码。
所以我found(也在SO)推荐我使用io.Source.fromFile的大部分东西。但是,在像这样尝试之后,读取一个UTF-8文件:
val user_list = Source.fromFile("usernames.txt").getLines.toList
val user_list = Source.fromFile("usernames.txt", enc="UTF8").getLines.toList
我查看了docs,但留下了一些问题。
正确编码:
文档显示我可以在
Source.fromFile中设置编码,就像我上面尝试的那样。看着Codec 上的男人和那里列出的types,我想知道这些是否都是我的编解码器选项 - 是否有例如?没有 Utf-16、Big-Endian vs Little-Endian 等?我对此有点着迷,因为它曾经让我在 Python 中遇到很多麻烦。出于某种原因,这对 Scala 的关注度较低吗?
正确阅读:
- 我查看的所有示例都使用
getLines方法并使用MkString或List等对其进行后处理。与仅读取整个文件(我的文件很小)在一个文件中相比有什么好处吗去吗?
正确写出:
- 我能找到的每个来源都告诉我 Scala 没有文件写入功能,需要使用 Java
FileWriter。我对此感到惊讶——这仍然准确吗?
看着它,我觉得这个问题对于 SO 来说可能有点宽泛,所以如果它不符合要求,我很乐意收回它。在这一点上,我不是在为具体的例子而苦苦挣扎,而是试图以一种我以后不会遇到麻烦的方式进行设置。 谢谢!
【问题讨论】:
-
您是否将 Java 属性
file.encoding设置为UTF-8?见stackoverflow.com/questions/23932070/…
标签: scala file text encoding io