Dateizugriff aus Applet

Hallo,

nein, ich will keine lokale Datei eines Benutzers in ein Applet laden. Das das nicht geht weiß ich. Aber ich möchte eine Datei einlesen, die Daten für mein Applet enthält. Diese Datei liegt auf dem gleichen Server, wie auch mein Applet liegt. Ich habs schon in einem Unterverzeichnis oder direkt bei den Klassen oder der HTML-Datei versucht, aber es funktioniert einfach nicht. Mittlerweilen liegt die Datei in jedem Verzeichnis auf dem Server.
Wenns jemand anschauen will, die Seite ist http://www.mortuus.de/TT_Test/diagram.html
Wenn ich das Applet lokal auf meinem Rechner laufen lasse funktionierts komischerweise. Nur auf dem Webserver nicht. Hab schon versucht, die Datei direkt zu öffnen, oder die Codebase des Applets zu ermitteln und diese dem File voranzusetzen.
Zum Einlesen verwende ich einen FileReader und übergebe diesen dann dem Konstruktor eines BufferedReader.
Hat das schonmal jemand geschafft, Daten einzulesen???

Wäre für jeden Tip dankbar.

Ciao
Jochen

noch was…
Nochmal Hallo,

wenn ich ein File-Objekt anlege, übergebe ich dem Konstruktor den Filenamen. Hab schon mit http://… oder auch nur den Filenamen versucht.
Wenn ich dann file.getAbsolutePath aufrufe, kommt irgendwas mit E:smiley:okumente und Einstellungen… zurück! Also der Pfad bei mir lokal. Klar das er das nicht öffnen kann. Aber wie mach ichs richtig?

Gruß
Jochen

jetzt wird´s klar.

Nochmal Hallo,

wenn ich ein File-Objekt anlege, übergebe ich dem Konstruktor
den Filenamen. Hab schon mit http://… oder auch nur den
Filenamen versucht.

Das ist das Problem: java.io.File gilt nur auf dem lokalen Rechner, java.net.URL gilt im Web. tausch dein „new File („blabla“)“ gegen „new URL („blabla“)“, änderer den Type der variable, fertig. Die meisten Stream´s schlucken auch URL´s.

cu

Geschafft. Aber da ist das nächste Problem
Hallo,

erstmal vielen Dank für den Tip. Ichs schonmal geschafft, die Datei im Applet einzulesen. Und zwar so:

URL fileURL = new URL(fileName);
URLConnection conn = fileURL.openConnection();
conn.connect();
BufferedReader is = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = is.readLine();

Jetzt hab ich aber das nächste Problem: Ich kann keine Datei öffnen, deren Pfad ein ‚-‘ enthält. Also z.B. eine Datei im Verzeichnis ‚cgi-bin‘ ist nicht zu öffnen. Wenn ich das Verzeichnis ‚cgibin‘ anlege, funktionierts. Ist das in Java so? Oder gibts eine Lösung?

Vielen Dank schon im Vorraus.

Ciao
Jochen

Hallo,

erstmal vielen Dank für den Tip. Ichs schonmal geschafft, die
Datei im Applet einzulesen. Und zwar so:

URL fileURL = new URL(fileName);
URLConnection conn = fileURL.openConnection();
conn.connect();
BufferedReader is = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
String line = is.readLine();

mit URL.openStream() gehts schneller, im Prinzip ist es aber genau so.

Jetzt hab ich aber das nächste Problem: Ich kann keine Datei
öffnen, deren Pfad ein ‚-‘ enthält. Also z.B. eine Datei im
Verzeichnis ‚cgi-bin‘ ist nicht zu öffnen. Wenn ich das
Verzeichnis ‚cgibin‘ anlege, funktionierts. Ist das in Java
so? Oder gibts eine Lösung?

java hat damit öfters Probleme. versuch „-“.

generell kann java nicht mit „Sonderzeichen“ umgegen, besonders nicht wenn´s etwas cross-platform machen soll. Die UniCode-Abkürzungen (nein, ich kenn sie nicht) helfen in den meisten Fällen. Das ist der gleiche Code wie er in HTML benutzt wird für unbreakableSpace-chars.

das Verzeichnis umbennen ist einfacher, falls möglich.

(cgi-bin ?) allerdings must du auch bedenken das cgi-Anwendungen noch ganz andere Probleme erzeugen können. java spricht die Teile an wie Dateien, Browser schicken ja noch Zusatzinfos.

cu & viel Glück