Inhalt einer Textdatei in jTextArea übernehmen

picsou

Grünschnabel
Hallo,

ich habe eine Textdatei, deren Inhalt die Datenstruktur

...
NAME88Schmidt=1
VORNAME88Hans=17
NAME89Meier=0
VORNAME89Peter=14
NAME90Schulz=1
Vorname90Vanessa=23
...

hat. Aus dieser Datei möchte ich in denTags NAME alle auf "=0" setzen und dieses in einer jTextArea ausgeben. Die Übernahme in die jTextArea bekomme ich nicht hin.

Ich nutze folgenden Code:
Code:
    public void dateiopen() {
        JFileChooser jFile = new JFileChooser();
        int erg = jFile.showDialog(this, "Open...");
        if (erg == JFileChooser.APPROVE_OPTION) {
            File f = jFile.getSelectedFile();
            String offen = f.getPath();
            System.out.println("Path: " + offen + " Name : " + f);
        }
    }
    
    public void showTextFile(File file){

        try {
		BufferedReader in = new BufferedReader(new FileReader(file)); //Variable file wird anscheinen nicht angenommen
		String zeile = null;
		String zeilenAnfang ="NAME";
		String zeilenEnde = "=1";
                String zeilenEndePuffer;
		String zeilenEndeNeu = "=0";
		while ((zeile = in.readLine()) != null) {
			if (zeile.startsWith(zeilenAnfang) && zeile.endsWith(zeilenEnde)){
                            zeilenEndePuffer = zeilenEnde;
                            zeilenEndePuffer = zeilenEndeNeu;
                            zeile=zeile.replace(zeilenEnde, zeilenEndeNeu);
                            System.out.println(zeilenEndePuffer);
                        }
			System.out.println(zeile); //Es erfolgt keine Konsolenausgabe
                        jTextArea1.setText(zeile);  //Übernahme in jTextArea schlägt fehl
		}
	} catch (IOException e) {
		e.printStackTrace();
	}
    

  }

Die in Netbeans eingefügte jTextArea lautet wie folgt:

Code:
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

    ... //zusätzliche Elemente

           jTextArea1 = new javax.swing.JTextArea();

    ... // zusätzlicher Code

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 60, 440, 440));

        pack();
    }// </editor-fold>

Was muss ich machen, um die Ausgabe in die jTextArea zu bekommen. Vielen Dank für eure Hilfe :)
 
1) der InputStream
Java:
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
Natürlich kannst du auch FileReader nutzen ... aber ich würde es hier komplett selbst schreiben um Encoding-Probleme zu umgehen.

2) das "setzen" des Textes
Java:
JTextArea.append(String);
Ein blick in die API-Doc *meine Signatur* hätte dir hier schon weiter geholfen.
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank für die Antwort. Allerdings bekommt "file" im BufferedReader

Code:
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(file)));

anscheinend noch nichts übergeben. Wie bekomme ich denn den Wert aus der Methode dateiopen() in "file" hinein?
 
Ähm ... 2 Möglichkeiten

1) globale Vairable
2) innerer Methoden-Aufruf

Beides hat seine Vor- und Nachteile ... kommt halt darauf an ob du nach dem Öffnen , Lesen , Darstellen und wieder Schließen des Files noch brauchst oder nicht.
 
Zurück