# Pfadangabe bei Applets



## Heiko80 (12. Jun 2006)

Hallo,

ich verzweifel langsam, kann mir irgend jemand sagen, wie ich einen Pfad bei einem Applet angebe.

Die Datei XY liegt im Ordner src/Daten/XY.txt
Die Programmpakete im Ordner src

filname habe ich Folgendermassen angegeben:

```
String fileName = ".src/Daten/XY.txt";
fin = new FileInputStream(fileName);
```
Als Anwendung funktioniert das ganze, als Applet wird die Datei leider nicht gefunden.

Ich weiß das man z.B. bei Bildern den Pfad mithilfe von

```
getClass().getResource("/icon/cut.gif")
```

angibt.
Das ist bei einem InputStream aber nicht möglich.

Welche alternativen gibt es da ???



MfG Marcus


----------



## Wildcard (12. Jun 2006)

Es gibt auch getResourceAsStream


----------



## L-ectron-X (12. Jun 2006)

Bei einem Applet werden die Pfade mit _getCodeBase()_ bzw. mit _getDocumentBase()_ ermittelt.


----------



## Heiko80 (12. Jun 2006)

Hmm,

funktioniert auch nicht.
Ich habs jetzt mal mit



```
fin = (FileInputStream) getClass().getResourceAsStream( "\\database\\text.txt");
```

versucht, aber aucgh das funzt nicht. Ich werd bald verückt, die Bilder werden alle angezeigt, nur die blöde Textdatei nicht.
Hat vielleicht noch jemand eine ander Idee??



MfG Heiko


----------



## L-ectron-X (12. Jun 2006)

Hast du dir mal meinen ersten Post angesehen?
Und guck mal in die Java-Konsole deines Browsers. Eventuell findet sich ja dort eine Begründung für dein Problem.


----------



## Heiko80 (12. Jun 2006)

Hallo L-ectron-X,

da haben wir uns knapp verpasst.
Ih hatte getCodeBAse() schon vorher ausprobiert, da aber immer als Fehlermeldung eine Nullpointer exception geworfen wurde, dachte ich das wär der falsche Ansatz.
Ich habs jetzt wiederholt versucht aber immer die gleiche fehlermeldung.
Ich komm da nicht weiter.

Also hier grob das Vorgehen:


```
Klasse KlapptNicht extends Applet
{

public void init()
    {
        this.appletInit();
    }

  .
  .
  .
  .

  public void showStateInfo(String key)
{
        String string = "";
        if (data == null)
        {
            try
            {
                URL u = getCodeBase();
            }
            catch (Exception e)
            {
                System.out.println("Exception");
            }

            FILENAME[0] = u + "/database/StateInfo.txt";
            data = new Database(FILENAME, KEYHASHMAP);

        }
        string = data.getElement(key, "StateInfo");

        if (!string.equals("null"))
        {
            automat.addText(string);
        }
}
}
```

Ich weiss überhaupt nicht wodran es liegen soll??


MfG Heiko


----------



## L-ectron-X (12. Jun 2006)

Wie lautet denn die genaue Fehlermeldung?


----------



## Heiko80 (12. Jun 2006)

Hallo,


die Fehlermeldung lautet:


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.applet.Applet.getCodeBase(Unknown Source)


MfG Heiko


----------



## L-ectron-X (12. Jun 2006)

Sieht so aus, als ob er den Text nicht finden kann.
Im Moment lässt du den Interpreter ausgehend vom Verzeichnis der Applet-Klasse im Unterverzeichnis _database_ nach einer Textdatei _StateInfo.txt_ suchen. Sieht das real auch so aus? Wahrscheinlich hast du einen Slash zu viel.
Du kannst mal versuchen, die Textdatei direkt ins Verzeichnis des Applets zu legen und dann nur noch mit 

```
URL url = getCodeBase()+"StateInfo.txt";
```
versuchen die Datei zu laden.


----------



## Heiko80 (12. Jun 2006)

Hallo,

ich hab das Problem gefunden.

Und zwar hab ich das Applet zum testen immer über JBuilder gestartet.

Wenn ich das ganze über einen Browser ausführe, dann gehts.


Da bleibt dann nur noch eine Frage, warum wird die Datei nicht gefunden, wenn sich das Applet z.B. unter 
C:/DokumenteUndEinstellungen/EigeneDateien/Applet/database/StateInfo.txt   befindet?

Soweit ich das verstehe, hat das irgendwas mit DokumenteUndEinstellungen zu tuen, lass ich mir nämlich 
den Pfad ausgeben, wird   ... Dokumente%20und%20Einstellungen/...   ausgegeben.


Bis dahin schon mal vielen Dank für die Hilfe


MfG Heiko


----------

