Datei einlesen Fehler

Hi zusammen.
Habe ein Problem und zwar will ich eine Textdatei in eine Hashmap einlesen.
Die Textdatei hat folgendes Format:
String;String
String;String
String;String
...
wobei der 1. String mein key für die Hashmap sein soll und der 2. dann der zum key gehärende Partner.
Nun habe ich eine Methode geschrieben, die aus der "antwort.txt" Datei lesen soll und dann die Zeile als String ausliest. Der String soll dann bei ";" gesplitet werden und der 1. Wert in die Hashmap als Key geschrieben werden und der 2. als Partner. Aber iwie hängt sich mein ganzes Java-Programm auf und ich hab keine Ahnung wieso. Hab auch schon rumgesucht aber ich bin auf keinen grünen Zweig gekommen.
Hoffe ihr könnt mir helfen.
Vielen Dank
Java:
public void vorbereiten()
{
  try{
	BufferedReader reader = new BufferedReader(new FileReader("antworten.txt"));
    String zeile = reader.readLine();
    ArrayList<String> values = new ArrayList<String>();
    while (zeile != null)
    {
    	values.add(zeile.split(";").toString());
    }
    for(int i = 0; values.size()>i;)
    {
    
    	speichern.put(values.get(i), values.get(i+1)); //speichern is der Name der Hashmap
    	i++;
    	i++;
    }
  }
 

insane80

Aktives Mitglied
Was meinst Du mit "hängt sich auf"?

Zuerst mal, fängst Du die Exception nicht.
Dann wirst Du in Deiner ArrayList vermutlich nicht das vorfinden, was Du erwartest, denn split() gibt ein String[] zurück.

Deine while-Schleife solltest Du auch nochmal überdenken, denn Du willst ja so lange aus der Textdatei lesen, wie sie Zeilen hat.

Wenn Du das hast, kannst Du in der gleichen Schleife auch die HashMap befüllen.
 

Final_Striker

Top Contributor
Wie wäre es mit ein Paar
Code:
System.out.println(...)
in deinem Code?
Mach einen in deine while-Schleife, dann wirst du sehen woran es liegt.
 
N

nillehammer

Gast
- Der Aufruf von readLine() gehört natürlich in die while-Schleife. Ein einmaliger Aufruf liest nur die erste Zeile
- Die ArrayList is ihmo überflüssig. Du kannst Die Map doch direkt befüllen
- Mit split erhälst Du einen Array von Strings. Das nullte Element ist Dein Key, das erste Dein value
 
Danke erstma für eure Hilfe.
Okay also hab die MEthode mal bisschen umgeschrieben, nur komm ich irgendwie nicht mit dem BufferedReader klar.
Java:
	while (reader.readLine() != null)
    {
    	  String zeile = reader.readLine();
    	  String[] key = zeile.split(";");
    	speichern.put(key[0],key[1]);
    	
    }

geht das in die richtige Richtung?
 

Camill

Bekanntes Mitglied
So könnte dein Schleifenkopf aussehen, wie "insane80" bereits erwähnt hat würde ich das befüllen der HashMap direkt in der Schleife vornehmen.
Java:
String line = null;
while((line = reader.readLine()) != null) {
  //fill HashMap
}
 
Okay und wie genau befülle ich die Liste jetzt?
Was ich nicht ganz verstehe ist, ob der Buffered Reader mit readLine() automatisch in der While Schleife die nächste Zeile raussucht oder man das noch irgendwie manuell eingeben muss.

Java:
  try{
	BufferedReader reader = new BufferedReader(new FileReader("antworten.txt"));
    
	String line = null;
	while((line = reader.readLine()) != null) {
	     String[] liste =  line.split(";");
	     speichern.put(liste[0], liste[1]);
	}
so hab das jetzt von Camill übernommen aber jetzt meckert er wieder und mir ist nicht genau klar warum.
split sollte mir doch ein Array von Strings übergeben und das sollte ich doch dann ganz normal auslesen können. Aber er meckert bei der Zeile [Java] String[] liste = line.split(";"); [/Java]. Ich verstehe nicht warum das so ist.
 
Also ich glaube nicht, dass der Fehler an einer anderen Stelle liegt. Wenn ich die Methode vorbereiten() am Anfang rauslasse funktioniert alles einwandfrei. Ich habe gleich zu Beginn einen Aufruf in den Konstruktor geschrieben, damit die HashMap sofort bei Programmstart gefüllt wird.

Hashmap habe ich ebenfalls im Konstrukur intialisiert:
Java:
HashMap<String,String> speichern = new HashMap<String,String>();
und hier nochmal die Methode
Java:
public void vorbereiten()
{
  try{
	BufferedReader reader = new BufferedReader(new FileReader("antworten.txt"));
    
	String line = null;
	while((line = reader.readLine()) != null) {
		String neu = reader.readLine();
	 liste =  neu.split(";");
	     speichern.put(liste[0], liste[1]);
	}
    	
   
}

 catch(IOException m )
 {
	 JOptionPane.showMessageDialog(null,"falsche datei");
 }

 }
Also ich sehe so keinen Fehler. Er gibt mir eine NullPointerException aus, in der Zeile, wo der String eigentlich gesplitet werden sollte.
 
@Camill. Das ist doe Komplette Methode mit dem catch und dem Rest der Methode.
@insane80. Ja habe nun gemacht funktioniert trotzdem nicht.
Die Zeile sieht jetzt so aus:
Java:
	String[] liste =  neu.split(";");

Leute, dass gibts doch nicht, dass der dumme Code nicht laufen will.
Eigentlich muss das doch so jetzt funktionieren. Ich checks einfach nicht.
 
Ah, jetzt gibt er mir null aus für den String neu. Also liest er die Datei nicht ein. Komisch, denn ich habe sie im selbern Verzeichnis. Jemand ne Ahnung warum er das nicht liest.
 

insane80

Aktives Mitglied
Bekommst Du die Fehlermeldung, dass er die Datei nicht findet? Wenn ja, stimmt mit dem Pfad vermutlich doch was nicht.

Lass das
Code:
String neu...
weg, sonst werden nicht alle Zeilen in der HashMap gespeichert.

Java:
  String line;
    while((line = reader.readLine()) != null) {
        //String neu = reader.readLine();
     liste =  neu.split(";");
         speichern.put(liste[0], liste[1]);
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X einlesen aus Datei, Fehler Java Basics - Anfänger-Themen 9
sliwalker CVS-Datei einlesen und Fehler richtig behandeln Java Basics - Anfänger-Themen 5
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
K Datei aus unbekannten Speicherorten einlesen Java Basics - Anfänger-Themen 1
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
P CSV Datei einlesen und damit ein Datenmodell befüllen Java Basics - Anfänger-Themen 2
N Datei einlesen und grafisch anzeigen Java Basics - Anfänger-Themen 31
P csv Datei einlesen und ausgeben Java Basics - Anfänger-Themen 5
J Text Datei einlesen Java Basics - Anfänger-Themen 6
N gerichteter Graph aus einer Datei einlesen Java Basics - Anfänger-Themen 21
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
J CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Datei einlesen - Dateipfad unter Linux anpassen Java Basics - Anfänger-Themen 12
A Datei in Array einlesen Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M CSV-File aus datei system einlesen Java Basics - Anfänger-Themen 3
B Datei in Java einlesen Java Basics - Anfänger-Themen 13
S Datei einlesen und ausgeben Java Basics - Anfänger-Themen 8
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
H config Datei erstellen + einlesen Java Basics - Anfänger-Themen 15
F Datei einlesen ( Bytes ) Java Basics - Anfänger-Themen 12
T Klassen CSV datei einlesen und parsen Java Basics - Anfänger-Themen 4
U Datei einlesen Java Basics - Anfänger-Themen 9
S ANSI-Datei einlesen UND UTF-8-Datei schreiben Java Basics - Anfänger-Themen 3
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
D txt-Datei zeilenweise als String einlesen Java Basics - Anfänger-Themen 2
E JPane txt datei einlesen Java Basics - Anfänger-Themen 5
D RegExp .txt-Datei einlesen Java Basics - Anfänger-Themen 6
M Datei Einlesen Fortan-Style? Java Basics - Anfänger-Themen 3
A Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 5
S Datei einlesen Java Basics - Anfänger-Themen 21
A Beim txt Datei einlesen kommen zusätzliche Lehrzeichen dazu. Java Basics - Anfänger-Themen 5
H eine Datei schnellstmöglich einlesen Java Basics - Anfänger-Themen 12
0 Log4J Probleme beim einlesen der Log datei Java Basics - Anfänger-Themen 2
E Input/Output Linux datei in Windows zeilenweise einlesen Java Basics - Anfänger-Themen 4
S XML Datei einlesen und Elemente ausgeben Java Basics - Anfänger-Themen 4
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
S Datenströne - Text in eine Datei einlesen, umwandeln und in eine neue Datei schreiben Java Basics - Anfänger-Themen 6
E externe .txt Datei mit Scanner einlesen Java Basics - Anfänger-Themen 7
N Input/Output .txt-Datei einlesen, aufteilen und seperat abspeichern Java Basics - Anfänger-Themen 3
L Datei einlesen Java Basics - Anfänger-Themen 12
L Input/Output Datei in Java einlesen Java Basics - Anfänger-Themen 9
J Datei einlesen Java Basics - Anfänger-Themen 10
I .csv-Datei einlesen klappt aber kann nicht in String geschrieben werden!?!?! Java Basics - Anfänger-Themen 11
S Datei einlesen und Ergebnis wieder in Datei schreiben Java Basics - Anfänger-Themen 5
J Datei einlesen teile aus lines ändern und wieder rausschreiben. Java Basics - Anfänger-Themen 4
B Wertetabelle mit versch. Formaten aus txt-Datei einlesen Java Basics - Anfänger-Themen 2
H 200000 Zeilen aus Datei einlesen Java Basics - Anfänger-Themen 13
D CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 23
J byteweise Einlesen einer Datei "Von.. bis.." Java Basics - Anfänger-Themen 3
J Einlesen/Speichern von Strings aus einer Datei Java Basics - Anfänger-Themen 15
Z CSV-Datei einlesen mit dem JFileChooser !!! Java Basics - Anfänger-Themen 5
H Einlesen einer CSV-Datei Java Basics - Anfänger-Themen 2
S Einlesen einer Datei? Java Basics - Anfänger-Themen 9
L Datei einlesen und neu geändert ausgeben Java Basics - Anfänger-Themen 8
B Formel aus Datei einlesen und benutzen Java Basics - Anfänger-Themen 3
C Datei einlesen Java Basics - Anfänger-Themen 19
H Datei einlesen in einer MVC Anwendung Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben