【发布时间】:2015-12-24 10:38:16
【问题描述】:
所以我试图在 scala 中读取一个文本文件,并且每当我看到某个符号时,我想在文本文件中的某个点向文本文件中写入一些内容。
例如,我正在读取一个文件,其中包含:
大家好,我叫“”,这是一个文本文件。
所以在读取文件时,当我看到符号“”时,我想给它写点东西;我将如何在 scala 中进行此操作?
【问题讨论】:
-
它不会那么容易工作。当文件加载到内存时,其内容的组成字节位于连续的内存单元中(不是真的,但足够接近)。当您在撇号中写入新内容时,您会覆盖下一个字节。因此,如果您以天真的方式这样做并写“Alan”,那么您最终会得到
Hi my name is "Alannd this is a text file.您应该将文件读入缓冲区,对其进行操作,然后覆盖该文件。顺便说一句,因为你,我五年前第一次使用了插入键。该死的东西仍然有效! -
我建议您从一个文件中读取(您可以在 Scala 中使用返回迭代器的
Source.fromFile(...).getLines懒惰地进行读取)并写入另一个文件 -
你可以读取每一行处理它并写入其他文件,然后删除旧文件,并重命名新文件吗?
-
1.为什么要丢弃输入文件? 2. 为什么你不能在写文件的时候直接替换
"" => something? 3.您是否计划进行任何其他替代?看起来您正在寻找一个小型模板引擎。 -
我的最终目标确实是创建一个混淆器,所以我将替换文件中的变量,但也添加了,所以我只是想在 scala 中获得最好的方法,因为我新手
标签: scala io scala-collections scala-2.10 read-write