在各种项目中,我们常常需要用到文件操作,笔者在近期的项目中遇到了一个与文件操作相关的问题。
在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"
之后开始使用文件操作:val source1 = Source.fromFile(PATH)
在for循环中,逐行读取文件、处理文件:for(line1 <- source1.getLines()) { // 逐行处理逻辑 }
在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 <- source1.getLines())
但是,结果显示,第二轮操作并没有真正实现。
经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何操作,因为没有读入任何数据。
解决方法是,重新实例化一个source2:val source2 = Source.fromFile(PATH)
再次调用for循环:for(line2 <- source2.getLines())
这样就可以实现再次对文件进行操作了。
时间: 2024-12-27 15:20:43