LZ_Jaja

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  在各种项目中,我们常常需要用到文件操作,笔者在近期的项目中遇到了一个与文件操作相关的问题。

  在代码实现的过程中,笔者首先定义了一个文件路径: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())

  这样就可以实现再次对文件进行操作了。

posted on 2016-04-14 00:05  LZ_Jaja  阅读(987)  评论(0编辑  收藏  举报