# mehrzeilige .txt einlesen/formatieren



## trash (22. Aug 2010)

Hallo ihr Lieben,

ich möchte in einer Textdatei bestimmte Informationen speichern und diese dann Zweilenweise einlesen und je nach Startpunkt formatieren.

Bsp: 

#1_Vorname
#2_Nachname
#3_Hier soll ein Zeilenumbruch interpretiert werden.
#1_Der nächste Vorname
etc.

Ausgabe soll dann z.B in einer Liste sein

Bisher habe ich folgenden Code:


```
public void wichtig_einlesen()
    {
        try {
        BufferedReader in = new BufferedReader(new FileReader("wichtig.txt"));
        String zeile = null;
        while ((zeile = in.readLine()) != null) {
           // System.out.println(zeile);
           
           lwichtig.setText("Wichtig: "+zeile);          
              
        }
      
        
        
    } catch (IOException e) {
        e.printStackTrace();
    }
        
    }
```

Problem: Er liest mit den Inhalt nur in der ersten Zeile ein, dann bricht er ab. Hat jemand eine Idee wie ich das mit dem Interpreter hinkriege? Vielleicht während meiner while Schleife eine Prozedur, die die Zeile Symbol für Symbol außeinander nimmt und guckt ob am Anfang ein # ist und welche Zahl dann folgt?


----------



## Tobse (22. Aug 2010)

```
// hier ist die änderung:
       while (zeile = in.readLine() != null) {
       // alte zeile:
//    while ((zeile = in.readLine()) != null) {
           // System.out.println(zeile);
           
           lwichtig.setText("Wichtig: "+zeile);          
              
        }
```
So hat es bei mir immer geklappt. Mit welchem Programms schreibst du den in die Datei?


----------



## trash (22. Aug 2010)

Tobse hat gesagt.:


> ```
> // hier ist die änderung:
> while (zeile = in.readLine() != null) {
> // alte zeile:
> ...



Wenn ich das ändere, zeigt er mir an: find incompatible types - found boolean but expected java.lang.string

Liegt der Fehler vielleicht nicht daran, dass ich vergessen habe zu programmieren, dass er mir in die nächste Zeile springt?


----------



## XHelp (22. Aug 2010)

Bist du sicher, dass er rausspringt? Vllt siehst du einfach nur ein mal "Wichtig: irgendwas"?


----------



## Gast2 (22. Aug 2010)

Es fehlt eine Klammer...

```
while ((zeile = in.readLine()) != null) {
```


----------



## trash (22. Aug 2010)

XHelp hat gesagt.:


> Bist du sicher, dass er rausspringt? Vllt siehst du einfach nur ein mal "Wichtig: irgendwas"?



Richtig ich sehe nur einmal: Wichtig: Thema

obwohl in der .txt

Thema
Thema
Thema steht.

Eigentlich sollte da stehen:

Wichtig: Thema
Thema
Thema

Woran liegts? oO


----------



## XHelp (22. Aug 2010)

Das liegt daran, dass du mit setText immer wieder den vorherigen Text überschreibst.
Also siehst du auch nur die letzte Zeile


----------



## Tobse (23. Aug 2010)

Sorry, mein fehler. Hier :

```
// ungetestet, sollte jedoch fubktionieren
Public String[] readfile (filename) throws java.io.FileNotFoundException {
    BufferedReader stream=new BufferedReader(new File(filename));
    ArrayList<String> ar = new ArrayList<String>();
    String x=stream.readLine();
    While (x != null) {
        ar.add(x);
        x=stream.readLine();
    }
    return ar.toArray();
}
```
Edit: das kommt davon wenn mab mehr php als java programmiert  solche feinheiten gehen mir echt aufn zeiger xD


----------



## XHelp (23. Aug 2010)

Tobse hat gesagt.:


> Sorry, mein fehler. Hier :



Mit der kleiner Änderung: Beim 
	
	
	
	





```
!==
```
 ist ein gleich zu viel.


----------

