Applet und Datei lesen

Hallo,
habe das Problem das ich mit einem Applet eine .txt Datei auslesen möchte. Sie liegt auf dem gleichen Server und im selben Verzeichnis wie die Index.html. Die Datei hat alle Rechte die ich ihr geben kann also -rwxrwxrwx. Trotzdem bekomme ich immer einen Fehler vom Securtity Manager wenn ich die Datei lesen will.
Kann mir jemand sagen warum???

Hallo Mirco,

Applet muß zuerst signiert werden, sonst darf es nur in seinem „Sandbox“ spielen, und nichts auf der Festplatten usw. machen. Der Security Manager hat auch verschiedene Varianten zwischen IE und Netscape, auch Plug-in ist eine Möglichkei. Guck mal auf der Seite http://java.sun.com/security/signExample12/, da erfährst du mehr.

Gruß Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  1. nicht erlaubt wegen Sicherheisbeschränkungen für Applets, kann durch Signieren wie in der anderen Antwort angegebene erlaubt werden
  2. ich gehe davon aus, dass dein Rechner nicht der Server ist. da das Applet lokal bei dir ausgeführt wird kommst du sowieso nicht auf die Datei am Server ran, sondern nur auf dein lokales Dateisystem, da musst du dir eine ander Möglichkeit einfallen lassen

halt ich für ein Gerücht …
… das das nicht geht.

Hallo erstmal,

ich hab schonmal ein Applet geschrieben, das seine Daten aus einem txt-File auf dem Server ausgelesen hat. Das geht schon wenn das Textfile auf dem gleichen Server liegt wie das Applet.
Hab jetzt nur keinen Sourcecode da, aber ich kann heute Abend mal zu Hause nachschauen, da müßte sich was finden.

Ich kann dir im Moment nur sagen, das das natürlich nicht mit File-Objekten funktioniert. Die sind für lokale Anwendungen gedacht. Da müssen dann schon irgendwelche InputStreams herhalten, die eine URL als Parameter übergeben bekommen.

Signieren mußt du dein Applet meines Wissens nur, wenn du zum Beispiel auf die Platte des Anwenders oder auf einen anderen Server zugreifen willst.

Gruß
Jochen

Hallo Mirco,

ich hatte das mal letztes Jahr gemacht, der Aufruf ging so:
HTML

JAVA


// Datei vom Server laden
public void dateiLaden() {
// Dateinamen aus der Oberfläche holen
java.lang.String strDatei = new String(getParameter(„File“));

// Plattformspezifisches Line-Separator-Zeichen ermitteln
java.lang.String strLs = System.getProperty(„line.separator“);

// TextArea sicherheitshalber leeren
this.textArea1.setText("");

// Stream für das Einlesen der Daten anlegen
java.io.InputStream file = null;

// Objekt für die Server-URL
java.net.URL url = null;

// Streams öffnen und URL des Servers bestimmen
try {
url = new java.net.URL(this.getDocumentBase(),strDatei); //$NON-NLS-1$
file = url.openStream();
} catch (java.net.MalformedURLException mue) {
System.out.println(„Fehlerhafte URL-Adresse / Datei“);
} catch( java.io.IOException e ) {
System.out.println(„IOException beim Initialisieren der Verbindung zum Server“);
}

// BufferedReader über den InputStream legen
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(file));

// Datei einlesen bis das Ende der Datei erreicht wird (EOF)
while(true) {
try {
// Datei wird zeilenweise eingelesen
java.lang.String line = br.readLine();

// Bei Dateiende Lesevorgang beenden
if (null == line)
break;

Gruß Michael