Datei weiterverwenden mit JFileChooser

_Anonymus

Mitglied
Hallo,

ich bin Java Neuling und versuche ein Programm zu schreiben, welches csv.Dateien einliest, was damit macht und wieder eine csv.Datei ausgibt. Dabei sollen zwei csv.Dateien eingelesen werden: eine wird in eine HashMap gespeichert und aus der anderen wird ein Schlüssel der jeweiligen Daten genommen und mit den Datensätzen aus der Map verglichen.

Soweit, so gut, das funktioniert alles, auch das mit dem aufspliten der Dateien und der Berechnung, aber ich habe jetzt ein problem mit der Dateiauswahl. Ich benutzte dazu den JFileChooser zweimal hintereinander, um die Dateien auszuwählen. Das sieht so aus:


Java:
public static void main(String[] args) 
	{
		
		JOptionPane.showMessageDialog(null, 
			  						  "Verarbeitung von Erzeuger- und Ausfuhrpreisen.", 
			  						  "Fachabteilung 3", 
			  						  JOptionPane.INFORMATION_MESSAGE);
		
		
		File inputE1 = null;
		File inputE2 = null;
		
		
		
		
		JOptionPane.showMessageDialog(null, 
				  					  "Wählen Sie zunächst die erste Datei (E2).", 
				  					  "Hinweis", 
				  					  JOptionPane.INFORMATION_MESSAGE);
		
		
		JFileChooser auswahl1 = new JFileChooser(inputE1);
        auswahl1.showDialog(null, ".cvs-Datei wählen");
		
		
        
        
        JOptionPane.showMessageDialog(null, 
        							  "Wählen Sie nun die zweite Datei (E2).", 
        							  "Hinweis", 
        							  JOptionPane.INFORMATION_MESSAGE);


        JFileChooser auswahl2 = new JFileChooser(inputE2);
        auswahl2.showDialog(null, ".cvs-Datei wählen");
        
        
        
		FileReader dateiLeserE1 = null;			   
		BufferedReader bufferedReaderE1 = null;
		
		FileReader dateiLeserE2 = null;			   	    
		BufferedReader bufferedReaderE2 = null;
		
....
....



Das File Objekt inputE1 und inputE2 will ich dann nachher weiterverwenden...


Java:
dateiLeserE1 = new FileReader(inputE1);  					// Objekt "File Reader" für inputE1 wird erzeugt
			bufferedReaderE1 = new BufferedReader(dateiLeserE1);
			
			String zeile = bufferedReaderE1.readLine(); 				// String "zeile" wird erzeugt
			zeile = bufferedReaderE1.readLine();						// erste Zeile wird übersprungen -> Header-Zeile
			
			
			Scanner scanner;
			
			HashMap hashmap = new HashMap(); 							// Hashmap wird erzeugt, Einlesen der Daten aus E1.csv in Hashmap
			String schluesselE1 = null;   								// String "schluesselE1" wird erzeugt
.....


Und das gleiche an späterer stelle noch mit der zweiten Datei. Da versagt der Compiler, wenn ich beide Dateien durch den FileChooser gewählt habe. Der Debugger sagt, dass an dieser Stelle

Java:
dateiLeserE1 = new FileReader(inputE1);


ne NullPointer Exception kommt. Also ist irgendwas an der Dateieinlesung falsch...

Aber was?


Schonmal danke im Vorraus!
 
ja eben - auf NULL !!!
Wenn Du sei dann verwenden willst, gibts eben die NPE 😀

Du solltest schon etwas Konkretes zuweisen !

Gruß
Klaus
 
Ja das ist am anfang nur die Initialisierung, dann will ich die File Variable input1 und input2 ja durch den JOPtionPane zuweisen aber das macht der nicht -.-




Und hier will ich die Datei lesen...

Java:
dateiLeserE1 = new FileReader(inputE1);


was mach ich denn falsch? Was genau soll ich denn zuweisen??
 
Falls der Filechooser per Klick auf OK geschlossen wurde:

Java:
inputE1 = auswahl1.getSelectedFile()



Merke: Wenn du eine Variable über die Schnittstelle übergibst:
Java:
new JFileChooser(inputE1)

dann können Eigenschaften des Inhalts geändert werden, der Variable selbst kann aber kein neuer Wert zugewiesen werden.

Beispiel:
Java:
Rectangle2D.Double rec = new Rectangle2D.Double(0, 0, 25, 25);
irgendeineMethode(rec);

private void irgendeineMethode(Rectangle2D.Double parameter) {
parameter.setSize(50, 50);
parameter = new Rectangle2D.Double(5, 5, 47, 47);
}

Nach dem Aufruf von irgendeineMethode() hat rec die Größe 50 x 50
parameter = ... beeinflusst rec in keiner Weise.
 

Neue Themen


Zurück
Oben