如何使用 getResourceAsStream() 遍历多行?
How to loop over multiple lines using getResourceAsStream()?
我有以下 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")
}
}
我有以下 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")
}
}