# Variable in Textdatei schreiben



## tHI3f (12. Juli 2008)

Ich würde gern einen text den ich nach einem actionevent in eine variable geschrieben hab nun in eine Textdatei (.txt) schreiben. Hab schon verschiedenste sachen ausprobiert, hat aber bis jetzt noch nicht funktioniert, kein Wunder ich bin ein absoluter anfänger . Hoffe mir kann hier jemand weiterhelfen. 


```
.
.
.
 public void actionPerformed( ActionEvent e )
   {
   String str = e.getActionCommand();
       if (str.compareTo("Start") == 0)
       {
         double a = Double.parseDouble(t1.getText());

        }
}
```


----------



## Kai008 (12. Juli 2008)

```
BufferedWriter out = new BufferedWriter(new FileWriter("textdatei"));
out.write(variable);
out.close();
```

Falls du Zeilenumbrüche brauchst vergiss "\n" usw, hat bei mir noch nie geklappt.
Nimm "System.getProperty("line.separator");"


----------



## tHI3f (12. Juli 2008)

das hab ich schon ausprobiert, aber er mag des double nicht, aber ich möcht die variable direkt so in eine textdatei schreiben, was kann ich tun ?


----------



## Kai008 (12. Juli 2008)

Eventuell Symbol was kein Unicode oder womit Java halt arbeitet drinnen?
Schon versucht per System.out.println(variable); auszugeben?
Manche sachen muss man auch formatieren. Dafür gibts verschiedene Möglichkeiten, z. B. S.o.printf(String, variable); für die direkte Ausgabe oder String.format(String, variable); um es als Rückgabewert zu behandeln. Gibt noch mehr aber die 2 Methoden verwende ich. Ich glaube das es hier nicht der Fall ist (zu wenig Swing-Erfahrung), aber versuche mal auszugeben und es zu wissen kann auch nicht schaden.
Wenn ich etwas neues versuche mache ich mir meistens ein kleines Konsolenbasierendes Programm, dann kann ich genau feststellen ob der neue Teil funktionieren und so die Fehlersuche eingrenzen.
Ach ja, und er sollte dir auch die Zeile des Fehlers anzeigen, dass ist auch hilfreich.


----------



## tHI3f (12. Juli 2008)

ich hab des problem das ich des ned beim actionevent machen kann, weil wenn ich zum actionevent des "throws Exception" schreib, sagt er mir dann "overridden method does not throw....". Irgendjemand ne idee wie ich das lösen kann ?


----------



## Kai008 (13. Juli 2008)

```
try
{
//Befehle	
}
catch(Exception e)
{
	e.printStackTrace();
}
```

Ich weiß, anfangs ein wenig nerfend (vor allem bei Thread.sleep), aber mache am besten immer das, da man bei Threads in der run() später nichtmehr throws'en kann.

Ich an deiner Stelle würde mir aber gleich soetwas schreiben:


```
public void WritetoFile(String string, String file)
{
	try
	{
		BufferedWriter out = new BufferedWriter(new FileWriter(file));
		out.write(string);
		out.close();
	}
	catch(Exception e)
	{
		e.printStackTrace();
	}
}
```

Einerseits wenn du Eclipse verwendest kannst du so schön folden, andererseits kannst du so per this.WritetoFile(...) immer gleich einen gewünschten String in ein gewünschtes File schreiben, wodurch du Zeilen spaarst und es übersichtlicher wird.


----------



## SONY2 (13. Juli 2008)

Warum schreibst du die Variable nicht als String in die Datei. Falls du die Datei später wieder einlesen willst musst du sie dir halt dann wieder zurückcasten. Oder aber du guckst mal wegen serialisierung ... das wäre die wohl beste Methode. ICh würde wenn ich keine Serialisierung machen wöllte einfach den String in eine Datei schreiben und fertig, dass geht auf jeden Fall.
Gruß
sony2


----------



## tHI3f (13. Juli 2008)

thx @ all, funktioniert endlich  

besonderer Dank an Kai008


----------

