2010-04-23 13 views
6

No puedo hacer que cada línea salte la primera línea, de acuerdo con esto hay un argumento entero que se puede pasar a cada línea pero no puedo entender la sintaxis¿Cómo utilizo el argumento firstLine en cada línea

http://docs.groovy-lang.org/latest/html/groovy-jdk/java/io/File.html#eachLine(int, groovy.lang.Closure)

#doesn't work 
new FileReader('myfile.txt').eachLine firstLine=2,{ 
     line-> println line 
} 
#nope 
new FileReader('myfile.txt').eachLine(2){ 
     line-> println line 
} 

Respuesta

14

creo que estás malinterpretando lo que el parámetro 'firstLine' se utiliza para. A partir de los documentos:

de primera línea - el valor del número de línea que se utiliza para la primera línea

Básicamente esto significa que este número identifica lo que la primera línea es. Siempre pasa por cada línea en el archivo.

Así que para el siguiente código:

new FileReader('c:/users/chris/desktop/file.txt').eachLine(4){line, number-> 
    println "$number $line" 
} 

Sería imprimir:

4 línea 1

5 line2

6 línea3

+0

Ahh sí que no entendía que gracias –

7

Para omitir la primera línea use return. Funciona como continuar en bucles estándar.

new FileReader('myfile.txt').eachLine { line, number -> 
    if (number == 1) 
     return // continue 

    println "$number: $line" 
} 
-1

se usó readline x veces antes;

def arq = new FileReader('c:/users/chris/desktop/file.txt') 
(0..4).each{ 
    arq.readLine(); 
} 
arq.eachLine{line, number-> 
    println "$number $line" 
} 
+0

¿Cómo funciona esto responden a la pregunta? – jingx

+0

si desea omitir 4 líneas, la intrangencia 0..4 realiza 4 bucles para omitir. –

Cuestiones relacionadas