# Problem beim schreibenden Dateizugriff



## java-jim (25. Aug 2007)

Hallo Board!

Ich habe inzwischen Stunden verbracht mit der Suche in Foren, Tutorials usw. und hoffe nun hier weiterzukommen.
Ich habe ein Applet, das auf Dateien zugreifen soll, lesend und schreibend, das ich lokal und auf dem Server teste. Das Lesen klappt wunderbar, beim Schreiben hapert's.

Das jar-File habe ich mit L-ectron-X's Batch-Datei erstellt und signiert. Wobei da (seit dem 2. Mal, ich hab's öfter benutzt) immer ein Fehler in Schritt 2 (Schlüssel generieren) auftaucht:
Keytool-Fehler: java.lang.Exception: Schlüsselpaar wurde nicht erzeugt. Alias <Signer> ist bereits vorhanden.

Damit kann ich nichts so richtig anfangen und weiß auch nicht ob das relevant ist. Das jar wird trotzdem erstellt und signiert und funktioniert lokal einwandfrei (sowohl im AppletViewer als auch in Firefox). Die Datei, die zur Laufzeit verändert werden soll, ist nicht im jar sondern im selben Verzeichnis wie das jar (im jar kann man ja keine Dateien verändern).

Lade ich die Dateien aber 1:1 hoch auf den Server bekomme ich eine FileNotFoundException beim schreibenden Zugriff. Der Code sieht so aus:


```
private void schreibeHighscore(Vector<HighscoreEintrag> highscore) {
		URL datei = null;
		
		try {
			datei = new URL(View.getCodeBase(), "highscore.txt");
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}

		try {
			PrintStream ps = new PrintStream(new FileOutputStream(datei
					.getFile()));
			
			schreibeWasInDatei();
			}
			ps.close();
		} catch (FileNotFoundException fnfe) {
			System.out.println("Datei " + datei
					+ " kann nicht geoeffnet werden!");
		} catch (IOException ioe) {
			ioe.printStackTrace();
	
		}
	}
```

Wäre für Hilfe sehr dankbar!

Gruß vom Java-Jim


----------



## Wildcard (25. Aug 2007)

Ein Applet läuft auf dem Client. Du kannst *nicht* ins Dateisystem des Servers schreiben!


----------



## java-jim (25. Aug 2007)

Ich meine in verschiedenen Quellen gelesen zu haben dass das durch Signierung des Applets möglich ist. Hab ich mich jetzt total vertan?

Und wenn ja, wie ist es dann möglich z.B. Highscores oder Konfigurationseinstellungen zu speichern wenn der Server kein PHP usw. unterstützt? Gar nicht??


----------



## Wildcard (25. Aug 2007)

Ein signiertes Applet darf alles was ein normales Programm auch darf.
Aber ein Applet läuft auf dem Client. Der Server stellt sozusagen nur den Download Link zur Verfügung.
Ist doch wohl klar, das nicht jedes da her gelaufen Programm irgendetwas auf eine Server Festplatte schreiben kann  :wink:


----------



## java-jim (26. Aug 2007)

Hmm.. jetzt wo du es sagst, klar.

Um nochmal auf meine andere Frage zurückzukommen: Ohne PHP o.ä. hab ich also schlechte Karten wenn ich z.B. eine Highscore irgendwo zentral speichern will?


----------



## Wildcard (26. Aug 2007)

Irgendetwas muss die Daten in Empfang nehmen. Sei es nun ein Java Programm, ein PHP Script, FTP, WebDAV,...


----------



## dhachim (13. Sep 2007)

Ich habe das selbe Problem. Leider habe ich kein PHP oder der gleichen.

Ich habe es mit einer Access Datenbank versucht.
Aber auch negativ.

Wie kann ich bis zum erneuten Aufruf des Appletts irgendwas speichern ? 
Ist nicht viel, hat jemand ne Idee ?

Wäre verflucht doof, wenn das aus nem Applett nicht ginge. Ich verstehs auch nicht, da es aus einem Jar ja geht.[/code]


----------



## Wildcard (13. Sep 2007)

Eigentlich ist hier doch schon alles gesagt, oder?  ???:L 
Du kannst nicht auf den Server schreiben, weil das Applet auf dem Client läuft.



> Ich habe es mit einer Access Datenbank versucht.
> Aber auch negativ.


In eine Datenbank kannst du natürlich etwas schreiben, das bedeutet aber, das der Client die Verbindungsdaten der DB kennt, und das möchte man normalerweise nicht.


----------

