2014-04-23 23 views
7

ich folgende bufferedreader bin mit den Zeilen einer Datei zu lesen,BufferedReader überspringen erste Zeile

BufferedReader reader = new BufferedReader(new FileReader(somepath)); 
while ((line1 = reader.readLine()) != null) 
{ 
    //some code 
} 

Nun möchte ich die erste Zeile der Datei überspringen zu lesen und ich will nicht verwenden, eine Zählerzeile int lineno, um die Zeilen zu zählen.

Wie geht das?

+0

Warum Sie readline nicht und es ignorieren? –

+10

Rufen Sie einfach 'reader.readLine()' vor der Schleife auf. –

+1

mögliches Duplikat von [Überspringt die erste Zeile beim Lesen einer Textdatei] (http://stackoverflow.com/questions/21082139/skipping-over-the-first-line-when-reading-a-textfile) –

Antwort

22

können Sie versuchen, diese

BufferedReader reader = new BufferedReader(new FileReader(somepath)); 
reader.readLine(); // this will read the first line 
String line1=null; 
while ((line1 = reader.readLine()) != null){ //loop will run from 2nd line 
     //some code 
} 
+0

Vielen Dank !!! – Omore

+0

@Omore Sie sind willkommen –

2

stattdessen eine linenumberreader verwenden.

LineNumberReader reader = new LineNumberReader(new InputStreamReader(file.getInputStream())); 
      String line1; 
      while ((line1 = reader.readLine()) != null) 
      { 
       if(reader.getLineNumber()==1){ 
        continue; 
       } 
       System.out.println(line1); 
      } 
+1

Dies ist möglicherweise der ineffizienteste und überkomplizierteste Weg, um dieses Problem zu lösen. –

+0

@BrianRoach Warum denkst du, dass der linenumberader zu kompliziert ist? – Hirak

+1

Weil A) es nicht notwendig ist und B) Du bei jedem Lesevorgang einen unnötigen Vergleich machst. –

1

Sie können einen Zähler erstellen, die den Wert der Startlinie enthält:

private final static START_LINE = 1; 

BufferedReader reader = new BufferedReader(new FileReader(somepath)); 
int counter=START_LINE; 

while ((line1 = reader.readLine()) != null) { 
    if(counter>START_LINE){ 
    //your code here 
    } 
    counter++; 
} 
2
File file = new File("path to file"); 
FileInputStream fis = new FileInputStream(file); 
BufferedReader br = new BufferedReader(new InputStreamReader(fis)); 
String line = null; 
int count = 0; 
while((line = br.readLine()) != null) { // read through file line by line 
    if(count != 0) { // count == 0 means the first line 
     System.out.println("That's not the first line"); 
    } 
    count++; // count increments as you read lines 
} 
br.close(); // do not forget to close the resources 
+0

Das Hinzufügen von Kommentaren zur Funktionsweise Ihres Codes würde Benutzern helfen, Ihren Code besser zu verstehen. – shrmn

+0

Ich hoffe, mein Code ist jetzt klarer mit den Kommentaren. Danke für die Warnung ;) – user3743369

Verwandte Themen