2016-01-04 2 views
0

У меня есть следующий код Scala:Как перебрать несколько строк с помощью getResourceAsStream()?

@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()?

Спасибо!

+1

http://alvinalexander.com/scala/scala-split-string-example Разделите строку на '\ n' ? –

+0

Java предоставляет класс сканера, который является итерируемым, или вы можете использовать BufferedReader. Для этого могут быть и другие инструменты Scala. – JimmyJames

ответ

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") 
    } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^