2016-08-07 3 views
-2

Gibt es trotzdem Scanner mit dem Lesen der Datei von einer bestimmten Zeile zu starten.Starten Sie das Lesen von einer bestimmten Zeile mit Scanner

Ich möchte mit dem Lesen von der zweiten Zeile bis zum Ende der Datei beginnen und die erste Zeile ausschließen.

Ich habe diese Linie versucht, aber es nicht

String line = input.next("pass the line that I want to start reading from"); 

Jede Hilfe bitte

Dank

+4

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() –

Antwort

0

einen booleschen verwenden, die den Moment des "Starters" value abfängt, die verursacht den Start von Lesewerten.

public static final int STARTER = "3"; 

public static void main(String[] args) { 
    boolean read = false; 
    try { 
     Scanner s = new Scanner(new File("input.txt")); 
     while (s.hasNextLine()) { 
      String line = s.nextLine(); 
      if (!read) { 
       if (Integer.parseInt(line) == STARTER) { 
        read = true; 
       } 
      } else { 
       System.out.println(line); // or save to a list or ... 
      } 
     } 
    } catch (Exception e){ 
     System.out.println(e); 
    } 
} 
+0

Danke für Ihre Antwort, das funktioniert, wenn ich eine bestimmte Zeile im selben Code und die gleiche Zeit des Lesens der Datei ausschließen möchte, muss ich eine Zeile als Parameter an eine Funktion senden, die beginnt, die Datei aus dieser Zeile zu lesen – Shaimaa

1

Sie können tatsächlich eine Methode erstellen funktioniert die ersten N Zeilen der Datei dann überspringen lese die Datei normal. Hier

ist ein Beispiel:

import java.io.File; 
import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 
     try { 
      Scanner s = new Scanner(new File("input.txt")); 
      skipLines(s, 3);//skip 3 lines of input.txt file 
      //read the rest of the file 
      while (s.hasNextLine()) { 
       String line = s.nextLine(); 
       // use lines here 
       System.out.println(line); 
      } 
     }catch (Exception e){ 
     } 
    } 

    public static void skipLines(Scanner s,int lineNum){ 
     for(int i = 0; i < lineNum;i++){ 
      if(s.hasNextLine())s.nextLine(); 
     } 
    } 
} 

Eingabe.txt:

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 

output:

4 
5 
6 
7 
8 
9 
10 
+0

Vielen Dank für Ihre Antwort – Shaimaa

+0

Sie sind willkommen :) Wenn Ihr Problem wurde durch diese Antwort gelöst, markieren Sie es einfach als korrekt. –

Verwandte Themen