代码之家  ›  专栏  ›  技术社区  ›  pixel

从Kotlin的大文件中读取第一行

  •  2
  • pixel  · 技术社区  · 6 年前

    File 在科特林。 文件本身是巨大的,所以我想使用内存效率的解决方案。

    File("huge.txt").bufferedReader().readLine()
    
    2 回复  |  直到 5 年前
        1
  •  9
  •   Roland    6 年前

    您可以使用:

    file.useLines { it.firstOrNull() }
    

    或:

    file.bufferedReader().use { it.readLine() }
    

    这两种方法都能确保你在那一行之后真的关闭了你的阅读器,并且同样有效。

    如果您确定始终有第一行,并且文件永远不会为空,那么您也可以使用 first() 代替或呼叫 it.readLine()!! (这实际上取决于是否将结果指定给可为null的类型)。

        2
  •  4
  •   apetranzilla    6 年前

    您现在所拥有的已经相当高效了—文件将由 bufferedReader 直到读到一行为止。但是,您应该确保读卡器已关闭-类似于:

    File("huge.txt").bufferedReader().use { it.readLine() }