java - 如何使用 getResourceAsStream() 循环多行?

标签 java scala stream resources classloader

我有以下 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() 处理每一行?

谢谢!

最佳答案

尝试像这样使用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")
    }
  }

关于java - 如何使用 getResourceAsStream() 循环多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34600525/

相关文章:

java - 我正在学习Head First Java,但我看不懂第544页

java - 'Single Read' REST API 的适当 HTTP 方法

scala - 在运行时将 Scala 3 代码从字符串解析为 Scala 3 AST

scala - 是否有用于包装执行 block 的类似延续的类型,例如 (Ctx => R) => R 或 (=> R) => R?

node.js - MongoDb + Mongoose QueryStream - 以下文档更改

java - 用 JVM 参数覆盖日志级别 (java.util.logging)?

java - 颜色量化给出非常糟糕的结果?

scala - Spark DataFrame - 从列中删除空值

java - 从字节数组创建 java.awt.Image

java - 使用 jar 文件中的字节数组缓存声音