# Servlets und InputStreams



## gigaplanet (1. Nov 2010)

Hallo zusammen,
ich versuche aus einem Servlet raus eine Mehtode auszuführen, in welcher eine Datei gelesen werden soll. Wenn ich das ganz als normales JAVA Projekt habe, dann liegt die Datei ja im Projektverzeichnis (also bei mir zumindest) und kann dann ja einfach mit test.datei geöffnet werden. Aber wenn ich das ganze als Webprojekt habe läuft das leider nicht ganz so wie gewünscht.

Wie kann ich nun den Ort der Datein bestimmen (ohne absolute Verwendung)?

Kann ich da mit : getClass().getClassLoader().getResourceAsStream irgendwie weiter kommen? Denn bisher hat noch nix geklappt


----------



## mfernau (1. Nov 2010)

Was für ein Webcontainer benutzt Du denn? Und ist Dein Servlet als JAR-Datei verpackt und deploeyd (inkl der besagten Datei)? Oder wo genau liegt Deine Datei bzw wie ist der hierarchische Aufbau Deines Projekts


----------



## FArt (2. Nov 2010)

gigaplanet hat gesagt.:


> Hallo zusammen,
> ich versuche aus einem Servlet raus eine Mehtode auszuführen, in welcher eine Datei gelesen werden soll. Wenn ich das ganz als normales JAVA Projekt habe, dann liegt die Datei ja im Projektverzeichnis (also bei mir zumindest) und kann dann ja einfach mit test.datei geöffnet werden. Aber wenn ich das ganze als Webprojekt habe läuft das leider nicht ganz so wie gewünscht.
> 
> Wie kann ich nun den Ort der Datein bestimmen (ohne absolute Verwendung)?
> ...



In einer Enterpriseumgebung (oder anderen Container-Infrastruktur) solltests du Filezugriffe vermeiden. Ressourcen liest man am Besten über den Classloader...


----------



## maki (2. Nov 2010)

Ich empfehle bei dieser Frage immer folgende Lektüre: Smartly load your properties - JavaWorld

Dazu kommt noch die Empfehlung sich die Methode ServletContext.getResourceAsStream anzusehen um auf nicht-Classpath Ressourcen zugreiffen zu können.


----------



## gigaplanet (2. Nov 2010)

maki hat gesagt.:


> Ich empfehle bei dieser Frage immer folgende Lektüre: Smartly load your properties - JavaWorld
> 
> Dazu kommt noch die Empfehlung sich die Methode ServletContext.getResourceAsStream anzusehen um auf nicht-Classpath Ressourcen zugreiffen zu können.



Der Link ist super hat mir sehr geholfen, mit deiner genannten Methode klappts wunderbar, danke


----------

