Danny
Danny

Reputation: 15

Searching for Terms and Printing lines in a Text File

The file name is searcher.scala and I want to be able to type:

scala searcher.scala "term I want to find" "file I want to search through" "new file with new lines"

I tried this code but keeps saying I have an empty iterator

import java.io.PrintWriter

val searchTerm = args(0)
val input = args(1) 
val output = args(2)

val out = new PrintWriter(output);

val listLines = scala.io.Source.fromFile(input).getLines

for (line <- listLines) 
{ 
    { out.println("Line: " + line) }

    def term (x: String): Boolean = {x == searchTerm} 
    val newList = listLines.filter(term)
    println(listLines.filter(term))
}
out.close;

Upvotes: 1

Views: 41

Answers (1)

Sergii Lagutin
Sergii Lagutin

Reputation: 10681

You have iterator listLines and you read it few times but iterator is one-time object:

  • for (line <- listLines)
  • val newList = listLines.filter(term)
  • println(listLines.filter(term))

You need revise your code to avoid repeat using of iterator.

Upvotes: 1

Related Questions