# Datei auslesen , Leerzeile überspringen



## Darkest_Sun (2. Jun 2011)

Hallo Community,

Ich habe einen Code geschrieben der eine Datei zeilenweise ausliest.
Es funktioniert alles super.

Wie bekomme ich es jetzt aber hin das er bei einer Leerzeile nicht stoppt? Bzw die einfach überspringt?

Vielen Dank


----------



## ChrisKu (2. Jun 2011)

Etwas schwer zu beantworten ohne Deinen Code zu kennen. Poste doch mal die relevanten Teile.


----------



## Darkest_Sun (3. Jun 2011)

```
public CEinlesen(String Pfad)
	{
		try
		{
			File Datei = new File(Pfad);
			
			BufferedReader Line = new BufferedReader(new FileReader(Datei));
			
			if (!Datei.exists()){
				throw new Exception("Die angegbene Datei exsistiert nicht");
			}
				
			if (!Datei.isFile()){
				throw new Exception("Der angegebene Pfad ist keine Datei");
			}
				
			if(!Datei.canRead()) {
				throw new Exception("Die angegebene Datei kann nicht gelesen werden");
			}
			
			while(Line.ready()) 
			{

				String Zeile = Line.readLine();
				...
                                             ...
                                             ...
			
			}
			
			Line.close();
			
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}		
		
	}
```

Da ich aus den Zeilen allerdings Arrays erstelle kommt dann eine Fehlermeldung wenn er versucht aus einer Leerzeile ein Array zu erstellen :/


----------



## nrg (3. Jun 2011)

würde ich so in etwa einlesen:


```
String Zeile = Line.readLine();
            while((Zeile = Line.readLine()) != null) 
            {
                        if (!Zeile.isEmpty())
                        {
                                    //.....

                        }
            }
```

btw: Variablen sind *lowerCamelCase* !!

edit: achja und das Einlesen hat in einem Konstruktor nichts verloren!


----------



## Darkest_Sun (3. Jun 2011)

lowerCamelCase?
heißt was?

das heißt man sollte das lieber in eine public void schreiben?

ich probiers mal aus danke schonmal


----------



## faetzminator (3. Jun 2011)

Darkest_Sun hat gesagt.:


> lowerCamelCase?



lowerCamelCase -> Variablen und Methoden -> [c]kleinerHund[/c], [c]tuEtwas()[/c]
UpperCamelCase -> Klassen -> [c]Haus[/c], [c]HausBoot[/c]
UPPER_CASE -> Konstanten -> [c]PI[/c], [c]ZERO[/c], [c]STANDARD_SIZE[/c], ...


----------



## ChrisKu (3. Jun 2011)

Darkest_Sun hat gesagt.:


> lowerCamelCase?
> heißt was?



Variablen sollten mit Kleinbuchstaben anfangen.

Wie schon der vorherige Poster angedeutet hat: Dein Abbruch resultiert nicht aus dem Einlesen der Datei sondern aus dem Versuch, die leere Zeile ins Array zu speichern.


----------



## Darkest_Sun (3. Jun 2011)

Klappt perfekt

Vielen dank. Hatte sowas in die Richtung gedacht. Aber hab nicht an die If-Schleife gedacht um die leeren Zeilen dann auch abzufangen


Perfekte schnelle Antworten!
Geniales Forum

Sun


----------



## nrg (3. Jun 2011)

if-schleife.de


----------



## Darkest_Sun (3. Jun 2011)

Ok, zukünftig dann nur noch if-Abfragen

Könntest du mir vllt auch bei folgendem Thema helfen?

http://www.java-forum.org/allgemeine-java-themen/119279-arraylist.html

Leider komm ich dort überhaupt nicht weiter.  Und es ist sehr sehr dringend..


----------



## nrg (3. Jun 2011)

schreib doch mal im hauptthread, was du an slaters anwort nicht vestehst. dann kann man dir helfen. im moment würde ich so ziemlich das gleiche schreiben, was slater gemacht hat:

les die Datei zeilenweile ein und mach dir eine Map<String, Autohaus>. Nach jedem Durchlauf schaust du, ob das Autohaus bereits in der Map exisitert. Wenn ja, addest du die Autos (am besten auch in einer eigenen Klasse) zu dem Autohaus. Ansonsten erstellst du ein neues Autohaus, fügst die Autos dazu und packst das Autohaus in die Map.

edit: aber bitte im mainthread weiter!


----------



## Darkest_Sun (6. Jun 2011)

Moin liebe Helfer und Helferinnen 

ich dachte das sich das Thema erledigt hat, nach einigen Test hat sich aber herausgestellt das er die erste Zeile grundsätzlich überspringt. Unabhängig davon obs eine Leerzeile ist oder nicht:/
den Rest macht er, auch mit Leerzeilen.

Hat jemand eine idee wieso? Hab alles genauso eingefügt wie unten geschrieben

Vielen Dank!


----------



## ChrisKu (6. Jun 2011)

> Hat jemand eine idee wieso? Hab alles genauso eingefügt wie unten geschrieben



Poste doch noch mal den relevanten Code, so wie Du ihn jetzt gändert hast.


----------



## Darkest_Sun (6. Jun 2011)

Code


----------



## ChrisKu (6. Jun 2011)

In Zeile 9 ließt Du die erste Zeile der Datei, am Beginn Deiner Schleife (Zeile 26) ließt Du die nächste Zeile und erst diese verarbeitest Du dann. Also: Nicht in Code Zeile 9 schon die erste Zeile lesen. D.h.


```
String Zeile;
```


----------



## Darkest_Sun (6. Jun 2011)

Perfekt!

Danke!!


----------

