【问题标题】:How to loop over multiple lines using getResourceAsStream()?如何使用 getResourceAsStream() 循环多行?
【发布时间】:2016-04-08 14:51:25
【问题描述】:

我有以下 Scala 代码:

  @Test def test2() = {
    try {
      val data_in = IOUtils.toString(getClass().getClassLoader()
        .getResourceAsStream("com/myProject/myPackage/myInput.txt"))

      val data_out = MyTool.process(data_in)

      println(data_out)

    } catch {
      case e: Exception =>

        println("process failed")
    }
  }

当 myInput.txt 只有一行时,代码可以正常工作。但是,我想知道当 myInput.txt 有多行时,如何将 data_in 分解为多行并使用 MyTool.process() 处理每一行?

谢谢!

【问题讨论】:

标签: java scala stream resources classloader


【解决方案1】:

尝试像这样使用 scala.io.Source.fromInputStream

  import scala.io.Source

  @Test def test2() = {
    try {
      val data_in = getClass().getClassLoader()
        .getResourceAsStream("com/myProject/myPackage/myInput.txt")

      for (line <- Source.fromInputStream(data_in).getLines()) {
          val data_out = MyTool.process(line)

          println(data_out)
      }

    } catch {
      case e: Exception =>

        println("process failed")
    }
  }

【讨论】:

    猜你喜欢
    • 2017-10-07
    • 2016-01-10
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多