# Datei in jar schreiben



## Gast (24. Feb 2006)

Ich habe eine logdata.txt Datei zusammen mit meinem Programm in ein jar gepackt. In die logdata.txt soll ein Wert geschrieben werden. Das funktioniert aber nicht, das Applet versucht außerhalb des jars die Datei logdata.txt anzulegen. Das will ich aber nicht, weil ich den geschriebenen Wert auf dem Server brauche. Das lesen der Datein aus dem jar geht ja wunderbar, aber das schreiben nicht. Wie kann ich das realisieren?

Hier die Methode fürs schreiben

```
public static boolean writeFile (String text, String filename, boolean append) { 
		try { 
			PrintStream openFile = new PrintStream( new FileOutputStream(filename, append)); 
			openFile.print(text+System.getProperty("line.separator")); 
			openFile.flush(); 
			openFile.close(); 
			return true; 
		} 
		catch(IOException e) { 
			e.printStackTrace(); 
			return false; 
		} 
		catch(IndexOutOfBoundsException e) { 
			e.printStackTrace(); 
			return false; 
		} 
	}
```

und im Programm der Aufruf:


```
boolean wasWritingSuccessfull = writeFile("testtext", "logdata.txt", true);
```
[/quote]


----------



## L-ectron-X (24. Feb 2006)

*verschoben*


----------



## MPW (24. Feb 2006)

L-ectron-X hat gesagt.:
			
		

> *verschoben*




da haettest du ihm auch gleich in einem Aufwasch noch sagen koennen, dass das nicht geht...

@Gast, sorry, aber was du da vorhast ist leider unmoeglich, da die Dateien auf dem Server geschuetzt sind und man sowieso nimals von Java aus in die zur Zeit ausgefuehrte jar schreiben kann.


----------



## Gast (24. Feb 2006)

Ok. das hab ich schon befürchtet. Gibt es eine Möglichkeit irgendwie so eine logdatei zu erstellen? In meinem Applet (Art Umfrage) brauch ich sowas, dass praktisch die Ergebnisse irgendwo hinschreibt, damit sie mir zugänglich werden.


----------



## Gast (24. Feb 2006)

Vielleicht nochmal eine genauere Beschreibung:

Das Applet enthält ein Spiel, welches Alter, Geschlecht usw. abfragt und daraus den Spielmodus bestimmt. Nach beendetem Spiel brauch ich die Daten des Spielers, die er vorher eingegeben hat und den Spielausgang (Zeit, Punkte) die ich dann für ein Uniprojekt auswerten will. Ich dachte das geht einfach indem ich auf dem Server eine Logdatei ausfülle, aber das geht ja anscheinend nicht.

Wie bekomm ich also die Daten des Spielers ins Applet rein und den Ausgang des Spiels+Daten wieder raus?


----------



## SamHotte (24. Feb 2006)

Mir fallen verschiedene Möglichkeiten ein:

1. (weiß aber nicht sicher, ob das überhaupt geht): das Applet erzeugt zum Schluss eine HTML-POST-Nachricht mit den gewünschten Daten, die dann an der Server gehn (bin nicht fit in Applets, sorry)

2.: das Applet greift bspw. via RMI auf einen Serverprozess zu und schickt seine Daten nach Spielende dorthin.

3.: falls eine Applet Java-Mail kann, könnte es eine E-Mail generieren

Fall 2 ist recht aufwendig, müsste aber funktionieren (du kannst dir natürlich diverse Probleme einhandeln, wenn das ganze noch durch 'ne Firewall muss), 1 und 3 könnten an Sicherheitsrestriktionen scheitern ...


----------



## Gast (24. Feb 2006)

Wie funktioniert das denn bei Spieleapplets, bei denen dann eine Highscoreliste im Internet mitgeführt wird? Das ist ja so was ähnliches was ich brauche.


----------



## L-ectron-X (24. Feb 2006)

MPW hat gesagt.:
			
		

> da haettest du ihm auch gleich in einem Aufwasch noch sagen koennen, dass das nicht geht...


Warum soll ich lügen? U.U. geht es schon, nur woher soll ich wissen welche Umgebung _Gast_ hat?
Mit RMI gehts z.B. Dafür muss _Gast_ aber auf seinem Rechner einen RMI-Server starten.


----------



## Guest (24. Feb 2006)

SamHotte hat gesagt.:
			
		

> Mir fallen verschiedene Möglichkeiten ein:
> 
> 1. (weiß aber nicht sicher, ob das überhaupt geht): das Applet erzeugt zum Schluss eine HTML-POST-Nachricht mit den gewünschten Daten, die dann an der Server gehn (bin nicht fit in Applets, sorry)
> 
> ...



1 ist eine gute Moeglichkeit
2 umstaendlich
3 kaputt, geht nicht wirklich, da der Mailserver auf dem gleichen Rechner liegen muesste, sonst wieder signen...

kurz: nimm 1!


----------



## Gast (26. Feb 2006)

Ok, danke an alle. Hab es jetzt so gelöst, dass ich aus dem Applet ein php-script aufrufe, dass mir die Sachen in ein txt auf dem Server schreibt. Das war das schnellste und einfachste (zumindest für mich).

Wen's interessiert wie man eine url aus einem Applet aufruft:

AppletContext ac = getAppletContext();
ac.showDocument(url, "blabla");


----------



## L-ectron-X (27. Feb 2006)

Hm, ja. Is bekannt...


----------

