Wo kommt getResourceAsStream(file) die Datei suchen?

Habe ich verwirrt getResourceAsStream();

Mein Paket-Struktur sieht wie folgt aus:

\src
|__ net.floodlightcontroller //invoked getResourceAsStream() here
|__ ...
|__ resources
    |__ floodlightdefault.properties //target
    |__ ...

Und ich möchte Lesen aus floodlightdefault.Eigenschaften. Hier ist mein code, liegen in der net.floodlightcontroller Paket:

package net.floodlightcontroller.core.module;
//...
InputStream is = this.getClass().getClassLoader()
                 .getResourceAsStream("floodlightdefault.properties");

Aber es scheiterte immer is == null. So Frage ich mich, wie genau funktioniert getResourceAsStream(file) Suche für die file. Ich meine, funktioniert es durch bestimmte PATHs oder in einer bestimmten um?

Wenn ja, wie config die Orte, die getResourceAsStream() sucht?

Thx!!!

  • Tun Sie haben die Ressourcen-Verzeichnis im classpath, wenn Sie mit Ihrem code? Im Allgemeinen, das Verhalten von getResourceAsStream hängt von der ClassLoader-Implementierung.
  • Generell wird auch davon abhängen, was this verweist.
  • Befestigen Sie Ihr null problem, es gibt zwei Dinge, die ich sehen zunächst. Erstens, es sieht aus wie Sie brauchen nur zu ändern, gibt es ein Verzeichnis "resources/floodlightdefault.properties". Zweitens, könnte die Methode zu suchen, die für die Ressource in Ihrem build-Verzeichnis und die Verzeichnis-Struktur gezeigt haben, scheint die IDE project source Ordner. Obwohl natürlich, wenn Sie Hinzugefügt haben, können Sie die Ressourcen dem Projekt der IDE sollte das kopieren der Dateien in das build-Verzeichnis automatisch. In einem kurzen test mit Netbeans, meine Ressourcen kommen nur null, wenn ich entfernen Sie Sie aus dem Aufbau und den src-Ordner.
  • Wie werden Sie den Aufbau Ihrer Projekt? Wo kommt floodlightdefault.Eigenschaften, die bis Ende der Laufzeit?
InformationsquelleAutor qweruiop | 2013-10-24
Schreibe einen Kommentar