首页 > 解决方案 > 跳过作为标题的第一行

问题描述

我正在使用 akka-stream 来解析文件。在我的文件中,我首先有标题行,没有其他地方。如何先在我的流中跳过这个头文件?我不想每次都检查行是否是标题。有没有办法做到这一点?

FileIO.fromPath(path).
  via(delimiter(ByteString("\n"), Int.MaxValue)). // split into lines
  map(_.decodeString("UTF-8")). // convert ByteStrings to Strings
  filter(!_.startsWith("#")). // remove comments
  fold(0)((i, _) => i + 1). // count remaining lines
  runForeach(println) // run the stream, print result

标签: scalaakka-stream

解决方案


如果您正在阅读 CSV 文件,您可以使用Alpakka:逗号分隔值 - CSV

例子 :

  Source
.single(ByteString(
  """eins,zwei,drei
    |11,12,13
    |21,22,23
    |""".stripMargin))
.via(CsvParsing.lineScanner())
.via(CsvToMap.toMap())
.fold(0)((i, _) => i + 1)
.runForeach(println)

输出:2


推荐阅读