# Aus einem File Zeilen auslesen.



## Patrick_1991 (12. Mrz 2012)

Hi Leute,

Ich wollte Fragen, ob es Möglich ist aus einem File,
die einzelnen Zeilen zu bekommen und diese dann zB in einer Variable speichern.

Also in der ersten Zeile des Files "test.txt" steht jetzt "Kuchen" und in der zweiten "Kopf".

Ich möchte nun jeder dieser Zeilen eine Variable geben.
Also zB:


```
String zeileEins = ? (Es muss Kuchen sein, soll aber aus dem File ausgelesen werden)
String zeileZwei = ? (Es muss Kopf sein, soll aber wieder aus dem File ausgelesen werden)
System.out.println(zeileEins); (zB)
```


----------



## Marcinek (12. Mrz 2012)

Wie wäre es mit einem Array?

Oder einer Liste.

Ansonsten google: Java Datei zeilenweise lesen.


----------



## Patrick_1991 (12. Mrz 2012)

Vielen Danke für die Antwort,
aber ich will gezielt diese eine Zeile als String Variable behandeln und verwenden.

Mfg
Patrick


----------



## Marcinek (12. Mrz 2012)

Ja dann solange read aufrufen bis du die gewünschte Zeile da drin hast.


----------



## AlexSpritze (12. Mrz 2012)

```
BufferedReader br = new BufferedReader(new FileReader("test.txt"));

String zeileEins = br.readLine();// (Es muss Kuchen sein, soll aber aus dem File ausgelesen werden)
String zeileZwei = br.readLine();// (Es muss Kopf sein, soll aber wieder aus dem File ausgelesen werden)
System.out.println(zeileEins);// (zB)
```


----------



## Patrick_1991 (12. Mrz 2012)

Sekunde,

Ich kann also nicht direkt eine Zeilennummer angeben die er dann lesen kann ?


----------



## AlexSpritze (12. Mrz 2012)

Du kannst ziemlich viel mit Java machen, aber genau das geht nicht, sorry...

Es sei denn du zählst wie oft du 
	
	
	
	





```
readLine()
```
 aufgerufen hast oder nimmst einen LineNumberReader (Java 2 Platform SE v1.4.2)


----------



## pl4gu33 (12. Mrz 2012)

du kannst alle Zeilen in einer ArrayList<String> nacheinander auslesen und dann kannst du auf die einzelnen Zeilen zugreifen durch die ArrayList... aber denk dran fängt bei 0 an nicht bei 1


----------



## Wildcard (12. Mrz 2012)

Patrick_1991 hat gesagt.:


> Ich kann also nicht direkt eine Zeilennummer angeben die er dann lesen kann ?


Nein, denn eine Datei weiß nichts über Zeilen. Wie viele Zeilen in einer Datei enthalten sind, weiß man erst, wenn man von Anfang bis Ende liest.


----------



## Patrick_1991 (13. Mrz 2012)

Okay vielen Dank,

aber es gibt da noch 2 Probleme:

1.) Wie gebe ich ein bereits existierendes File an ?
2.) Die Methode readLine() kann nicht für String Arrays verwendet werden,
sondern nur einer einzelnen String Variable, wie muss ich das also in einen String Array einsetzten ?

Mfg
Patrick


----------



## irgendjemand (13. Mrz 2012)

1) [c]new File("absoluter pfad zum file");[/c]
2) ne List verwenden

```
List<String> list=new ArrayList<String>();
String line="";
while((line=in.readLine())!=null)
{
list.add(line);
}
```

aus der List kann man dann eine array erzeugen


----------



## AlexSpritze (13. Mrz 2012)

irgendjemand hat gesagt.:


> 2) ne List verwenden
> 
> ```
> List<String> list=new ArrayList<String>();
> ...




```
List<String> stringList = new ArrayList<String>();
...
String[] stringArray = stringList.toArray(new String[stringList.size()]);
```


----------



## Patrick_1991 (13. Mrz 2012)

Was ist den die "in" - Variable ?

Aber vielen Dank da wir hier schon auf dem Richtigen Weg sind


----------



## Patrick_1991 (13. Mrz 2012)

Das mit der "in" - Variable hat sich erledigt 

Vielen Dank,

Es bedarf nur noch nach einer Lösung:

Wie kann ich bestehende Zeilen umändern ?
Ist das auch möglich ?

Mfg


----------



## AlexSpritze (13. Mrz 2012)

```
String[] zeilen = ...
zeilen[0] = "neue Zeile"; // erste Zeile komplett ändern
zeilen[1] = zeilen[1].replace("a","4"); // alle Buchstaben a in der zweiten Zeile in eine 4 ändern
// usw.
```


----------



## BlackTiger95 (30. Mrz 2012)

```
ArrayList<String>ar=new ArrayList<String>();
File f=new File(PATH);
BufferedReader br=new BufferedReader(new FileReader(f));
String in=br.readLine();

while(in!=null){
ar.add(in);
in=br.readLine();
}
```

so das ist der Code D 

hoffe ich habe gerade keinen Tippfehler gemacht MUSS so funktionieren, dass einzige was ist die Exception von BufferReader wird nicht abgefangen


----------

