FileReader liest nur letzte Zeile aus

DrIkarus

Mitglied
Morgen,

ich möchte eine XML oder Textdatei einlesen und auf einem Textfield ausgeben.

Leider funktioniert das nur "fast" richtig.


Wenn ich eine DAtei auswähle, dann erscheint nur die letzte Zeile aus der Datei.
Jemand ne Idee, wie ich das ändern kann?

Danke schonmal

Code:
input.addActionListener(new ActionListener() { 		
			      public void actionPerformed(ActionEvent ae) {		
			        JFileChooser chooser = new JFileChooser();		
			        int returnValue = chooser.showOpenDialog(null);
			        if (returnValue == JFileChooser.APPROVE_OPTION) {
			        	einlesen.setText("Path opened:" +
			        	chooser.getSelectedFile().getParentFile());
			        	klartext.setText("Path opened:" +
			        	chooser.getSelectedFile().getAbsoluteFile());
			          File selectedFile = chooser.getSelectedFile();
			          System.out.println(selectedFile.getAbsoluteFile());
			          
			          
			          try {
			        	  BufferedReader br = new BufferedReader(new FileReader(chooser.getSelectedFile().getAbsoluteFile()));
			        	  
			        	  String zeile = br.readLine();
			        	  while (zeile != null) {
			        		  klartext.setText(zeile);
			        		  zeile = br.readLine();
			        		  		        	  }

			          }catch (IOException io) {
			        	  io.printStackTrace();
			          }
			      		        }
			      }
			    });
 
Hey,


du ersetzt auch jedes Mal den String ;)

EIne Möglichkeit wäre zeile +=br.readLine(); und klartext.setText(klarText.getText() + zeile);

mfg
bo
 
Danke für die Hilfe, leider funktioniert das auch nich ganz richtig.
Wenn ich eine Datei ausgewählt habe, dann zeigt das Programm zwar den Inhalt an, aber nach ein paar Sekunden ist das textfeld wieder leer. Das ist schon sehr komisch.
 
Setz mal nen breakpoint da rein. Am besten dort wo er ins Textfeld schreibt. Dann siehst du genau was er reinschreibt und wie oft er die Methode aufruft.
 
Zurück