FileWriter schreibt nicht in Datei

dubimax

Mitglied
Hallo, ich habe das Problem, dass wenn ich einen Button (Bestätigen) drücke, soll eigentlich ein Text (zum Testen das Wort "test") in eine txt Datei geschrieben werden.

Leider passiert dies nicht. Eine Fehlermeldung erscheint auch nicht.

Hier der Code, vllt. sieht ja jemand auf anhieb den Fehler und Danke im Voraus.

Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;


public class DialogUI {

	private JTextField dialogText;
	private JDialog _dialog;
	private JButton bestaetigung;
	private FileWriter fw;
	
	public DialogUI() {
		super();
		_dialog = initDialog();
		registriereUIAktionen();
	}

	private JDialog initDialog() {

		JDialog dialog = new JDialog((JFrame) null, "Eintragen", true);
		JPanel panel = new JPanel(new BorderLayout());
		bestaetigung = new JButton("Bestätigen");
		dialogText = new JTextField();
		dialog.add(panel);

		panel.add(dialogText, BorderLayout.NORTH);
		panel.add(bestaetigung, BorderLayout.SOUTH);

		dialog.setBounds(300, 200, 300, 200);
		dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		dialog.setVisible(true);

		return dialog;
	}

	public JDialog getDialog() {
		return _dialog;
	}

	public void setDialog(JDialog dialog) {
		this._dialog = dialog;
	}

	public String getDialogText() {
		return dialogText.getText();
	}

	public JTextField setDialogText(JTextField dialogText) {
		return this.dialogText = dialogText;
	}

	

	public JButton getBestaetigung() {
		return bestaetigung;
	}

	public void setBestaetigung(JButton bestaetigung) {
		this.bestaetigung = bestaetigung;
	}
	
	public void registriereUIAktionen(){
		
		final File file = new File("./woosa.txt");
		this.getBestaetigung().addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				
			
				try {
					fw = new FileWriter(file , false);
					fw.write("test");
					
					fw.close();

					
				} catch (IOException e1) {
					
					JOptionPane.showMessageDialog(null, "Fehler:", null, JOptionPane.ERROR_MESSAGE);
					//System.err.println( "Konnte Datei nicht erstellen" );
				}
				
			}
				
		});
	}
	
}
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
setz mal hinter das

Java:
fw.write("Hallo");

noch ein
Code:
fw.flush();

ansonsten mal im Catch block den stackTrace mit ausgeben lassen , ggf. wird die Datei nicht gefunden o.ä
[EDIT]
Immer den Qualifizierten Pfad angeben , das hier wird nicht funktionieren denk ich

Java:
 final File file = new File("./woosa.txt");

sprich

Java:
"C:/Dokumente/Mein Ordner/woosa.txt"

Ich vermute hier fliegt eine FileNotFoundException
[/EDIT]
 
Zuletzt bearbeitet:

dubimax

Mitglied
Moin KaoZ,

das fw.flush(); hatte ich bis jetzt immer mit dran, habe allerdings gelesen, dass das fw.close(); schon das flush() beinhaltet.

Hmm... mit dem Pfad, hab ichs grad mal probiert, bekomme da den selben stacktracefehler:

Code:
!ENTRY org.eclipse.jdt.ui 4 10001 2014-06-27 22:20:18.964
!MESSAGE Internal Error
!STACK 1
Java Model Exception: Java Model Status [Unknown javadoc format for getClass() [in Object [in Object.class [in java.lang [in C:\Program Files\Java\jre7\lib\rt.jar]]]]]
	at org.eclipse.jdt.internal.core.JavadocContents.getMethodDoc(JavadocContents.java:158)
	at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:671)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:499)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.extractJavadoc(ProposalInfo.java:93)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.computeInfo(ProposalInfo.java:77)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.getInfo(ProposalInfo.java:62)
	at org.eclipse.jdt.internal.ui.text.java.AbstractJavaCompletionProposal.getAdditionalProposalInfo(AbstractJavaCompletionProposal.java:573)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController$3.run(AdditionalInfoController.java:106)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
!SUBENTRY 1 org.eclipse.jdt.core 4 1009 2014-06-27 22:20:18.964
!MESSAGE Unknown javadoc format for getClass() [in Object [in Object.class [in java.lang [in C:\Program Files\Java\jre7\lib\rt.jar]]]]
 

kaoZ

Top Contributor
Mal abgesehen das ich es ohne Probleme ausführen kann passiert halt nix beim Klick auf den Button , wie auch ^^
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
So....


Ich hab mir mal möglichst wenig aufwand gemacht:

Kopiere das mal und führe es aus

Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
 
 
public class DialogUI {
 
    private JTextField dialogText;
    private JDialog _dialog;
    private JButton button;
    private FileWriter fw;
    
    public DialogUI() {
        _dialog = initDialog();
    }
 
    private JDialog initDialog() {
 
        JDialog dialog = new JDialog((JFrame) null, "Eintragen", true);
        JPanel panel = new JPanel(new BorderLayout());
        button = new JButton("Bestaetigen");
        button.addActionListener(new ButtonListener());
        dialogText = new JTextField();
        dialog.add(panel);
 
        panel.add(dialogText, BorderLayout.NORTH);
        panel.add(button, BorderLayout.SOUTH);
 
        dialog.setBounds(300, 200, 300, 200);
        dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        dialog.setVisible(true);
 
        
        
        return dialog;
    }
 
    public JDialog getDialog() {
        return _dialog;
    }
 
    public void setDialog(JDialog dialog) {
        this._dialog = dialog;
    }
 
    public String getDialogText() {
        return dialogText.getText();
    }
 
    public JTextField setDialogText(JTextField dialogText) {
        return this.dialogText = dialogText;
    }

    class ButtonListener implements ActionListener{

		@Override
        public void actionPerformed(ActionEvent e) {
	       if(e.getActionCommand().equals("Bestaetigen")){
	    	   System.out.println("Hallo Welt");
	       }
        }
    	
    }
    
    public static void main(String[] args) {
	    new DialogUI();
    }
    
}

[TIPP]
1. Aussagekräftigere namen nutzen
2. wenn du schon von außen Listener setzen können wollen möchtest, dann musst du diese Funktionalität auch korrekt implementieren.
3. Ich habe hier den einfacheren weg über eine Innere Klasse gewählt welche das ActionListener Interface implementiert.
4. du hast zu viele überflüssige Methoden ........
5. Jede Klasse sollte eine Funktion erfüllen, ergo alles was da nicht rein gehört in Hilfsklassen auslagern, z.B das Schreiben der Daten
6. nutze shortcut returns für bessere übersichtlichkeit
[/TIPP]
 
Zuletzt bearbeitet:

dubimax

Mitglied
Hmm also hab da dann noch den FileWriter eingebaut und dann kommt folgendes:

Code:
!ENTRY org.eclipse.jdt.ui 4 10001 2014-06-27 22:34:48.399
!MESSAGE Internal Error
!STACK 1
Java Model Exception: Java Model Status [Unknown javadoc format for close() [in OutputStreamWriter [in OutputStreamWriter.class [in java.io [in C:\Program Files\Java\jre7\lib\rt.jar]]]]]
	at org.eclipse.jdt.internal.core.JavadocContents.getMethodDoc(JavadocContents.java:158)
	at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:671)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:499)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.extractJavadoc(ProposalInfo.java:93)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.computeInfo(ProposalInfo.java:77)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.getInfo(ProposalInfo.java:62)
	at org.eclipse.jdt.internal.ui.text.java.AbstractJavaCompletionProposal.getAdditionalProposalInfo(AbstractJavaCompletionProposal.java:573)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController$3.run(AdditionalInfoController.java:106)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
!SUBENTRY 1 org.eclipse.jdt.core 4 1009 2014-06-27 22:34:48.399
!MESSAGE Unknown javadoc format for close() [in OutputStreamWriter [in OutputStreamWriter.class [in java.io [in C:\Program Files\Java\jre7\lib\rt.jar]]]]
 

kaoZ

Top Contributor
Code bitte , das scheint mir eher nach einem Problem mit deiner JRE oder IDE auszusehen

Weil , und hier mal ein Screen:

 
Zuletzt bearbeitet:

dubimax

Mitglied
Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class DialogUI {

	private JTextField dialogText;
	private JDialog _dialog;
	private JButton bestaetigung;
	private FileWriter fw;

	public DialogUI() {
		super();
		_dialog = initDialog();
		
		//registriereUIAktionen();
	}

	private JDialog initDialog() {

		JDialog dialog = new JDialog((JFrame) null, "Eintragen", true);
		JPanel panel = new JPanel(new BorderLayout());
		bestaetigung = new JButton("Bestaetigen");
		dialogText = new JTextField();
		dialog.add(panel);

		panel.add(dialogText, BorderLayout.NORTH);
		panel.add(bestaetigung, BorderLayout.SOUTH);

		dialog.setBounds(300, 200, 300, 200);
		dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		dialog.setVisible(true);

		return dialog;
	}

//	public void registriereUIAktionen() {
//
//		final File file = new File("./woosa.txt");
//		this.getBestaetigung().addActionListener(new ActionListener() {
//
//			@Override
//			public void actionPerformed(ActionEvent e) {
//
//				try {
//					fw = new FileWriter(file, false);
//					fw.write("test");
//
//					fw.close();
//
//				} catch (IOException e1) {
//
//					JOptionPane.showMessageDialog(null, "Fehler:", null,
//							JOptionPane.ERROR_MESSAGE);
//					// System.err.println( "Konnte Datei nicht erstellen" );
//					e1.getStackTrace();
//				}
//
//			}
//
//		});
//	}
	
	class ButtonListener implements ActionListener{
		 
        @Override
        public void actionPerformed(ActionEvent e) {
           if(e.getActionCommand().equals("Bestaetigen")){
        	   //final File file = new File("./woosa.txt");
        	   try {
					fw = new FileWriter(new File("C:/test.txt"));
					fw.write("test");
					fw.close();

				} catch (IOException e1) {

					JOptionPane.showMessageDialog(null, "Fehler:", null,
							JOptionPane.ERROR_MESSAGE);
					// System.err.println( "Konnte Datei nicht erstellen" );
					e1.getStackTrace();
				}
           }
        }
        
    }

	public JDialog getDialog() {
		return _dialog;
	}

	public void setDialog(JDialog dialog) {
		this._dialog = dialog;
	}

	public String getDialogText() {
		return dialogText.getText();
	}

	public JTextField setDialogText(JTextField dialogText) {
		return this.dialogText = dialogText;
	}

	public JButton getBestaetigung() {
		return bestaetigung;
	}

	public void setBestaetigung(JButton bestaetigung) {
		this.bestaetigung = bestaetigung;
	}
}
 

kaoZ

Top Contributor
Wenn du auch mit Angabe eines Voll Qualifizierten Pfades diese Fehlermeldung bekommst, und oder du diesen Fehler auch bekommst wenn du meine Code ausführst (mit einem von dir existierenden Pfad) würde ich in betracht ziehen ggf. mal das JRE neu aufzusetzen, ggf ist es ein Problem mit einem der .jar's oder so , scheint augenscheinlich zumindest darauf hin zu deuten .
 

dubimax

Mitglied
Moin,

so Problem gelöst. Hätte meine registriereUI() nicht im Konstruktor aufrufen dürfen sondern in meiner initDialog().

Nun läuft es einwandfrei auch mit meinem Code.

Vielen Dank für die Mühe und Zeit, die Ihr euch genommen habt.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Filewriter schreibt einfach nicht Java Basics - Anfänger-Themen 6
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
O Ausgabe als .txt Datei speichern mit FileWriter Java Basics - Anfänger-Themen 2
B FileWriter nicht sichtbar? Java Basics - Anfänger-Themen 4
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
Z FileWriter erzeugt Symbole Java Basics - Anfänger-Themen 8
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
C FileWriter Problem. Java Basics - Anfänger-Themen 2
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
D Nur aus Interesse: Warum verwendet man FileWriter.flush()? Java Basics - Anfänger-Themen 4
B FileWriter und JFileChooser zusammenfügen Java Basics - Anfänger-Themen 3
B FileWriter close() muss? Java Basics - Anfänger-Themen 8
Java-Insel Methoden FileWriter Methoden funktionieren nicht Java Basics - Anfänger-Themen 20
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
G Effizienzsteigerung von FileWriter als Logging Java Basics - Anfänger-Themen 4
L FileReader und Filewriter Java Basics - Anfänger-Themen 4
O Datentypen double in string über fileWriter... Java Basics - Anfänger-Themen 7
O OOP fileWriter Dateiname übergeben Java Basics - Anfänger-Themen 12
R Klassen FileWriter und CharSet Java Basics - Anfänger-Themen 4
Luk10 FileWriter Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
O Integer in File mit Filewriter schreiben - geht nicht richtig Java Basics - Anfänger-Themen 4
M Probleme mit FileWriter Java Basics - Anfänger-Themen 7
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
C FileWriter mit einer Variable Java Basics - Anfänger-Themen 8
S FileWriter - in neue Zeile schreiben!? Java Basics - Anfänger-Themen 19
K FileWriter Speicherort Java Basics - Anfänger-Themen 7
T OOP Speichern mit BufferedWriter(FileWriter(File)) Java Basics - Anfänger-Themen 2
S FileWriter Java Basics - Anfänger-Themen 3
G FileWriter -> neue Zeile Java Basics - Anfänger-Themen 13
F Seltsame Zeichen und kein Zeichenumbruch mit Filewriter Java Basics - Anfänger-Themen 4
G FileWriter Java Basics - Anfänger-Themen 3
G FileWriter Java Basics - Anfänger-Themen 6
T FileWriter Java Basics - Anfänger-Themen 5
M FileWriter Java Basics - Anfänger-Themen 18
J Problem mit FileWriter Java Basics - Anfänger-Themen 24
N Schneller als FileWriter? Java Basics - Anfänger-Themen 28
B Problem mit Filereader und filewriter Java Basics - Anfänger-Themen 20
M FileWriter-Problem Java Basics - Anfänger-Themen 2
P FileWriter schreiben? Java Basics - Anfänger-Themen 4
L Streamklassen, Filewriter und StringBuffer Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
G Prüfen mit FileWriter Java Basics - Anfänger-Themen 6
N Problem mit FileWriter Java Basics - Anfänger-Themen 2
S FileWriter-Variable nicht initialisiert Java Basics - Anfänger-Themen 3
R FileWriter: Dort wieder anfangen, wo er aufgehört hat Java Basics - Anfänger-Themen 4
S FileWriter funzt nicht :( Java Basics - Anfänger-Themen 5
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
N wie schreibt man die neue for schleife? Java Basics - Anfänger-Themen 3
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
D Input/Output Writer schreibt nicht in Subprozess Java Basics - Anfänger-Themen 3
B Erste Schritte Java IDE schreibt "(String[] args)" Java Basics - Anfänger-Themen 5
M BufferedWriter schreibt nur "?" oO Java Basics - Anfänger-Themen 6
K BufferedWriter schreibt die letzten paar Zeilen nicht Java Basics - Anfänger-Themen 5
S BufferedReader liest was anderes als BufferedWriter schreibt Java Basics - Anfänger-Themen 5
K println schreibt nichts auf das Display Java Basics - Anfänger-Themen 3
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
J RandomAccessFile schreibt falsch Java Basics - Anfänger-Themen 2
B Wie schreibt ihr eure Programme? Klassenweise oder linear? Java Basics - Anfänger-Themen 10
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 1
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 3
C my_table.setRowSelectionAllowed(true) funktioniert nicht; Java Basics - Anfänger-Themen 0
B Warum funktioniert die Lösung von CodeGym aber meine nicht? Java Basics - Anfänger-Themen 3
P Wo NUR (!) JRE v18 oder v21 herunterladen? Also nicht volles JDK Java Basics - Anfänger-Themen 1
J shuffle cards wird nicht ausgeführt. Java Basics - Anfänger-Themen 2
J JTextField -> CaretPos bei SelectionStart() setzten nicht bei SelectionEnd() Java Basics - Anfänger-Themen 20
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
I Webservice funktioniert nicht Java Basics - Anfänger-Themen 5
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
SarahXyy Ergebnisse stimmen nicht überein? Java Basics - Anfänger-Themen 11
thomas55 Erste Schritte Modul läuft in IntelliJ, nicht in NetBeans Java Basics - Anfänger-Themen 11
G Nicht ausführbares JAR, externe jars mit einbinden Java Basics - Anfänger-Themen 7
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
G Regex greift nicht richtig Java Basics - Anfänger-Themen 4
G JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
G JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
G JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
G .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben