# Datei auslesen ...



## H3llGhost (3. Dezember 2007)

Hallo Leute,

ich habe vor eine Datei auszulesen und wollte die ausgelesenen Sachen gleich in ein Array packen, aber vorerst mal zur Dateistruktur:


```
[1]
*Hans Muster (Name)
*200,23 (Geld)
*1234 (PW)
[2]
*Peter Hans
*124,12
*5678
[3]
...
```

Nur soll er ein Array wie folgt erstellen oder ähnliches ... (Ich weiß nicht da was am Besten ist)

Array(
    1 => Array("Name", 123.12, "1234"),
    2 => Array("Name2", 12.12, "5678");
)

Versteht ihr was ich vorhabe?


----------



## zeja (3. Dezember 2007)

Hast du es denn schonmal geschafft die Datei zeilenweise einzulesen und wieder auf der Konsole auszugeben?


----------



## Morphinus21 (4. Dezember 2007)

Also am betsen ließt du die Datei erstmal mit einem File Reader ein
Das sollte am besten mal so aussehen:

```
BufferedReader in = new BufferedReader(new FileReader("inhalt.txt"));
```
Um dann jede Zeile bis zum Ende einzulesen eignet sich am betsen eine While Schleife


----------



## vites (5. Dezember 2007)

So könntest du das z.B. lösen:


```
package de.tutorials;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import java.util.Vector;

/**
 * @author Viktor Koop
 */
public class MyFileParser {
	/**
	 * Die Methode dient zum Parsen einer Datei mit der folgender Form:
	 * 	[1]
	 *	*Hans Muster
	 *	*200,23
	 *	*1234
	 * 	[2]
	 *	*Peter Hans
	 *	*124,12
	 *	*5678
	 * 
	 * @param fileurl die URL zur Datei, die geparst werden soll.
	 * @return Gibt einen Vector, der die geparsten Personen enthält, zurück.
	 */
	public static Vector<Person> parseFile(String fileurl){
		Vector<Person>returnVec = new Vector<Person>();
		try {
			FileInputStream fis = new FileInputStream(fileurl);
			Scanner scanner = new Scanner(fis);
			double geldbetrag = 0;
			String name ="";
			String pw = "";
			String tmp ="";
			while(scanner.hasNextLine()){
				scanner.nextLine();
				name = scanner.nextLine().substring(1);
				tmp = scanner.nextLine().substring(1).replace(",", ".");
				geldbetrag = new Double(tmp);
				pw  = scanner.nextLine().substring(1);
				returnVec.add(new Person(name,geldbetrag,pw));
			}
		} catch (FileNotFoundException e) {
			//TODO
		}
		return returnVec;
	}
}

/**
 * @author Viktor Koop
 */
class Person{
	private String name;
	private double geldbetrag;
	private String password;
	
	public Person (String name, double geldbetrag, String password){
		this.name = name;
		this.geldbetrag = geldbetrag;
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getGeldbetrag() {
		return geldbetrag;
	}

	public void setGeldbetrag(double geldbetrag) {
		this.geldbetrag = geldbetrag;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}
```


----------

