# Datei in Java-Applet einlesen



## Roehrisch (24. Aug 2003)

Tach zusammen

Ich hab da mal ne kleine Frage...
Wie kann ich denn in ein Java-Applet den Inhalt einer TXT-Datei einlesen?
Ist auch nur eine Zeile und die TXT-Datei befindet sich auch im gleichen Verzeichnis wie das Applet. Dürfte doch eigentlich kein Problem sein, oder? Aber ich schaff das irgendwie nicht.
Danke schonmal,

Gruß, Roehrisch


----------



## omosde (25. Aug 2003)

Meinst du wirklich, das dies sinnvoll waere, wenn ein Applet Dateien auf fremden Rechnern lesen darf! Also ich bin dagegen und glaube nicht, das das funktioniert!

mfg
omosde


----------



## DTR (25. Aug 2003)

So wie ich das verstehe liegt die Textdatei ja nicht auf einem fremden Rechner sondern mit dem Applet auf dem Server. Dann müsste das Möglich sein. Du musst nur einen Filereader zu der Datei öffnen, genau wie du auch bei einer Applikation einen Filereader öffnest. Du kannst dir über das Applet die Adresse des Servers geben lassen, um die Verbindung aufzubauen.


----------



## stev.glasow (25. Aug 2003)

also das lesen auf fremden rechnern von eine applet aus unterdrückt der security-manager .

wenn es mit einem filereader nicht funktioniert versuch mal dir den inputstream über eine URLConnection  zu holen - vielleicht geht's so ...
dafür müsstest du das applet aber auf einem server läufen lassen - GLAUBE ich.


----------



## DTR (25. Aug 2003)

Applets alufen grundsätzlich im Browser des Clients und nicht auf einem Server. Üblicher weise liegen sie aber in den öffentlichen Verzeichnissen eines Webservers. Das ist ja auch ganz sinnvoll, da so weltweiter Zugriff garantiert ist, was ja auch der Sinn von Applets ist. Der Securitymanager sorgt jetzt dafür, das der Clientrechner geschützt wird. Es gibt unter anderem keinen Zugriff auf die Festplatte. Das Applet hat allerdings die Möglichkeit von dem Server Daten nachzuladen.


----------



## stev.glasow (25. Aug 2003)

also  :arrow:  URLConnection


----------



## DTR (25. Aug 2003)

zum Beispiel. Aber über die URL geht es auch, da bekomme ich auch einen Inputstream.


----------



## stev.glasow (25. Aug 2003)

und wie sieht's aus wenn das applet und txt local auf dem rechner liegen ?


----------



## DTR (25. Aug 2003)

Wenn das ganze über einen Webserver bereitgestellt wird geht das. Ohne Webserver bin ich mir nicht sicher, vermute aber das es geht. 
Auch hir gilt "Im Zweifel hilft ausprobieren" (GoTo Java 2, Zweite Auflage Kapitel 16.4.2)


----------



## Roehrisch (27. Aug 2003)

Danke schon mal für die Mühe. 
Also es sieht so aus... das Applet soll auf einem Webserver liegen und die Textdatei befindet sich auch auf dem Server in dem gleichen Verzeichnis. 
Ich hab aber keine Ahnung von den Streams und von einer URLConnection. Wäre nett, wenn mir jemand den Quellcode eines Beispielprogrammes geben könnte?! 

Danke, Gruß Roehrisch


----------



## Nobody (27. Aug 2003)

im Javabuch gibts eine erklärung mit beispielprogramm. hab dir mal den quelltext rauskopiert (findest mittels der suchfunktion sofort)


```
001 /* SaveURL.java */
002 
003 import java.net.*;
004 import java.io.*;
005 
006 public class SaveURL
007 {
008   public static void main(String[] args)
009   {
010     if (args.length != 2) {
011       System.err.println(
012         "Usage: java SaveURL <url> <file>"
013       );
014       System.exit(1);
015     }
016     try {
017       URL url = new URL(args[0]);
018       OutputStream out = new FileOutputStream(args[1]);
019       InputStream in = url.openStream();
020       int len;
021       byte[] b = new byte[100];
022       while ((len = in.read(b)) != -1) {
023         out.write(b, 0, len);
024       }
025       out.close();
026       in.close();
027     } catch (MalformedURLException e) {
028       System.err.println(e.toString());
029       System.exit(1);
030     } catch (IOException e) {
031       System.err.println(e.toString());
032       System.exit(1);
033     }
034   }
035 }
```


----------

