# Buffered Reader, erst ab bestimmter Zeile auslesen?



## vodn7v (19. Feb 2009)

Hallo ich habe eine Methode, die eine Textdatei ausliest. jetzt möchte ich dieser methode eine skipline mitgeben, bedeutet. wenn skipline 0, dann fang an von vorne zu lesen, wenn skipline 1, dann fang an ab der 2ten zeile zu lesen. etc

wie könnte man sowas realisieren ??

danke !!


----------



## The_S (19. Feb 2009)

Indem du die nicht benötigten Zeilen ins leere Liest.


----------



## SlaterB (19. Feb 2009)

lies innerhalb der Methode mit bufferedReader.readLine() genau skipLines Zeilen raus,
bevor du den BufferedReader dann an die eigentliche Verarbeitung weiterreichst


----------



## vodn7v (19. Feb 2009)

EDIT: oder slater.. so ganz habe ich deinen vorschlag noch nicht verstanden. 

--> lies innerhalb der Methode mit bufferedReader.readLine() genau skipLines Zeilen raus: wie mache ich das? / ich weiss ja vorher auch nicht wieviele zeilen enthalten sind.


also momentan sieht der code so aus:

			File file = new File(fileName);
			BufferedReader br = new BufferedReader(new FileReader(file));

			while ((line = br.readLine()) != null) {
				data.setRecord(line);
				data.setRecno(lineCount);
			        data.insert(); // hier wird der Inhalt in meine SQL-Tabelle geschrieben.
			        lineCount++;
			}

			br.close();

also erst alles einlesen? und in ein array packen? und dann das array erst ab 0+skipline laufen lassen um es wegzuschreiben?

anders geht das nicht? ca so wie: br.setSkippedLines();




wäre wohl zu einfach wa ..

danke


----------



## SlaterB (19. Feb 2009)

```
File file = new File(fileName);
BufferedReader br = new BufferedReader(new FileReader(file));

### for (int i=0; i<3; i++) {
###     br.readLine();
### } 

while ((line = br.readLine()) != null) {
data.setRecord(line);
data.setRecno(lineCount);
data.insert(); // hier wird der Inhalt in meine SQL-Tabelle geschrieben.
lineCount++;
}

br.close();
```
schon sind drei Zeilen weg, ganz ohne Array und Verzweiflung


----------



## ARadauer (19. Feb 2009)

```
File file = new File(fileName);
      BufferedReader br = new BufferedReader(new FileReader(file));
      int skipLines = 5; // das kann aber auch übergeben werden ;-)
      
      for(int i = 0; i< skipLines;i++)
         br.readLine();
      
      while ((line = br.readLine()) != null) {
      data.setRecord(line);
      data.setRecno(lineCount);
      data.insert(); // hier wird der Inhalt in meine SQL-Tabelle geschrieben.
      lineCount++;
      }

      br.close();
```

ah zu langsam....


----------



## vodn7v (19. Feb 2009)

super !! vielen dank. funktioniert.
habe nur noch ne frage zum verständnis, warum das ganze so ist wie es ist =)

also wenn ich 1x br.readLine() ausführe. dann springt der zeiger gleich auf die nächste zeile?


vielen dank !!


----------



## The_S (19. Feb 2009)

öh ... ja. Dafür heißt die Methode ja "readLine".


----------



## Gelöschtes Mitglied 5909 (19. Feb 2009)

Tipp: verwende einen java.io.LineNumberReader


----------

