problem mit zeilenweise einlesen aus Datei

Status
Nicht offen für weitere Antworten.

pebcak

Mitglied
Hallo, nachdem ich jetzt stundenlang gegoogelt und das Forum durchforstet hab, komm ich wohl nicht drumrum meine Frage hier zu posten. Ich möchte über FileDialog eine Datei Auswählen, und dann zeilenweise auslesen, und in einer Textarea anzeigen. Soweit so gut. Das Problem ist, das ich beim Auslesen der Datei immer null bekomme. Kann mal wer über den Code schauen, ist bestimmt nen mini Fehler, aber ich find ihn nicht.
Code:
 public void ladeDatei()
      {
            load = new FileDialog(this, "Auswahl", FileDialog.LOAD);
            load.setVisible(true);
            dateiName = load.getFile();
            dateiName = (load.getDirectory() + dateiName);
            System.out.println("Dateiname: " + dateiName);
            try
            {
                  BufferedReader datei = new BufferedReader(new FileReader(dateiName));
                  
                  while ((zeile = datei.readLine())!= null);
                  {
                        System.out.println("Zeile: " + zeile);
                        text += zeile + "\n";
                  }
                  
                  System.out.println("Text: " + text);

                  ta = new TextArea();
                  ta.setText(text);
                  ta.setBounds(30,82, 740, 488);
                  this.add(ta);
            }
            catch(IOException e)
            {

            }

      }

Und hier noch die Ausgabe, die mir die System.out.println liefern
Dateiname: C:\entwickl\java\Editor\test.txt
Zeile: null
Text: null
Also scheint es so zu sein, das bei readLine() immer null herauskommt. Bloß warum?

Vielen Dank schon mal
 
zeile wird ganz oben in der Klasse Editor, die auch die Funktion ladeDatei sowie die main
enthält deklariert.
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Editor extends Frame implements ActionListener
{
      // Anfang Variablen
      FileDialog load, save;
      MyMenuBar myMen;
      String dateiName = "";
      String zeile;
      String text = "";
      TextArea ta;
      Boolean isTa = false;
      // Ende Variablen

      public Editor()
      {
            //Anfang Frame-Initialisierung
            this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent evt) { System.exit(0); }});
            Toolkit myTool = Toolkit.getDefaultToolkit();
            setIconImage(myTool.getImage("gs.gif"));
            
            //Anfang Erstellen und Einbinden einer MenuBar mit hilfe der Klasse MyMenuBar
            myMen = new MyMenuBar();
            myMen.neu.addActionListener(this);                   //Actionlistener kann nicht an MenuBar übergeben werden,aber an MenuItems
            myMen.oeffnen.addActionListener(this);
            myMen.speichern.addActionListener(this);
            myMen.speichernu.addActionListener(this);
            myMen.schliessen.addActionListener(this);
            this.setMenuBar(myMen);
            //Ende Erstellen und Einbinden einer MenuBar mit hilfe der Klasse MyMenuBar
            
            final int frameWidth = 800;
            final int frameHeight = 600;
            this.setTitle("Editor");
            this.setSize(frameWidth, frameHeight);
            this.setLayout(null);



            this.setVisible(true);
            //Ende FrameInitialisierung
      }

      // Anfang Ereignisprozeduren
      public void actionPerformed(ActionEvent event)
      {
             if (event.getSource()== myMen.neu)
             {
                     ta = new TextArea();
                     ta.setBounds(30,82, 740, 488);
                     this.add(ta);
                     isTa = true;
             }
             
             else if (event.getSource()== myMen.oeffnen)
             {
                    ladeDatei();
             }
             
             else if (event.getSource()== myMen.speichern)
             {
                     if (isTa)
                     {
                           //irgendwas mit getText, und dann abschpeichern
                     }
                     else
                     {
                           //Wenn es keine Textarea gibt, auch kein speichern
                     }
//                   this.setBackground(Color.blue);                            //nur Dummi Funktion
//                   this.repaint();
             }
             else if (event.getSource()== myMen.speichernu)
             {
                   save = new FileDialog(this, "Speichern unter", FileDialog.SAVE);
                   save.setVisible(true);
             }
             else if (event.getSource()== myMen.schliessen)
             {
                   this.dispose();
             }
      }
      
      public void ladeDatei()
      {
            load = new FileDialog(this, "Auswahl", FileDialog.LOAD);
            load.setVisible(true);
            dateiName = load.getFile();
            dateiName = (load.getDirectory() + dateiName);
            System.out.println("Dateiname: " + dateiName);
            try
            {
                  BufferedReader datei = new BufferedReader(new FileReader(dateiName));
                  
                  while ((zeile = datei.readLine())!= null);
                  {
                        System.out.println("Zeile: " + zeile);
                        text += zeile + "\n";
                  }
                  
                  System.out.println("Text: " + text);

                  ta = new TextArea();
                  ta.setText(text);
                  ta.setBounds(30,82, 740, 488);
                  this.add(ta);
            }
            catch(IOException e)
            {

            }

      }
      // Ende Ereignisprozeduren

      public static void main(String[] args)
      {
            new Editor();
      }
}
Das sollte eigentlich nicht mein problem sein.
 
Es wird keine Exception geworfen, und in der Datei steht auch was drin, und auch die erste Zeile der Datei ist nicht leer. Das ist ja das was ich nicht versteh, auf den ersten Blick sollte das so gehen, oder kommt er mit der Pfadangabe für die Datei nicht klar (System ist windows)?
 
Manchmal scheint es zu langen den Code mal ne weile nicht anzustarren. Das ; hinter dem while (...) hätte nicht nötig getan. Trotzdem vielen Dank fürs anschauen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben