# letzte Zeile aus wachsender Textdatei auslesen



## welle87 (26. Nov 2011)

Hallo Liebe Java-Profi's 

ich bin neu hier, Java-Anfänger und habe folgendes Problem: ich möchte eine bestimmte letzte Zeile aus einer Textdatei auslesen, die sich immer mit neuen Zeilen füllt. 
Es handelt sich um eine Logdatei, die Datei wird jede Sekunde um eine neuen Momentanwert erweitert. Ein neuer Momentwertwert enthält ein Block in mehreren Formaten. 
Ein Block sieht so aus:

.
.
.
$GPRMC,191410,A,4735.5634,N,00739.3538,E,0.0,0.0,181102,0.4,E,A*19
$GPRMB,A,9.99,L,,Exit,4726.8323,N,00820.4822,E,29.212,107.2,,V,A*69
$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,351.5,M,48.0,M,,*45
$GPGSA,A,3,,,,15,17,18,23,,,,,,4.7,4.4,1.5*3F

Nun möchte immer die letzte Zeile mit $GPRMC auslesen, quasi der momentane Wert in diesem Format.

Ich habe es hinbekommen, die Datei Zeilenweise zu lesen, bis in einer Zeile nichts mehr steht und nach $GPRMC zu filtern (.startsWith($GPRMC)) aber wie kann ich nur die letzte Zeile damit ausgeben?


----------



## Gast2 (26. Nov 2011)

Du gehst die Datei komplett durch von oben bis unten. Immer wenn du auf ne Zeile triffst die mit 
	
	
	
	





```
$GPRMC
```
 beginnt, merkst du dir den String. Wenn du dann komplett durch bist hast du die letzte Zeile die mit 
	
	
	
	





```
$GPRMC
```
 beginnt in dem String stehen.


----------



## welle87 (27. Nov 2011)

Was bedeutet einen String merken bzw, wie geht denn das? Kannst Du das bitte genauer erklären?


----------



## Gast2 (27. Nov 2011)

Am Beispiel einer Liste so:

```
public static void main(final String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");

        String lastString = "";
        for (String s : list) {
        	lastString = s;
        }

        System.out.println("Letzer String: " + lastString);
    }
```


----------



## Alexiios (27. Nov 2011)

```
BufferedReader breader = null;
		try {
			breader = new BufferedReader(new FileReader(file));
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		}
        
        String line;
        String merke;
 
        try {
			while ((line = br.readLine()) != null) {
			    merke = line;
			}
		} catch (IOException e1) {
			e1.printStackTrace();
		}
 
        try {
			br.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
```

Kann man natürlich noch perfomanter machen, aber ich denke so ist es am ersichtlichsten


----------



## welle87 (27. Nov 2011)

Danke funktioniert :toll:


----------

