# relativer Pfad in Servlets für Dateien



## Fetze (26. Okt 2005)

Hallöle, 

ich hatte die Frage schon bei den Anfängern gestellt, aber hier passt es wohl besser:

ich möchte gerne in einem Servlet in der init-Methode eine Datei öffnen, und zwar über eine relative Pfad-Angabe. 
Gibt es dazu eine Möglichkeit, das wäre sehr wichtig für mich, weil ich mir hier diverse Angaben auslesen muss, 
die ich für die Anwendung brauche und das Deployment auf verschiedenen App-Servern möglich sein soll, ohne 
dass ich im Quelltext rumwurschteln muss. 
Mit dem unten genannten Code hat die Datei den Pfad C:\Programme\Tomcat\bin\pathinfo.txt 
sie befindet sich aber in C:\Programme\Tomcat\webapps\testapplication\pathinfo.txt 


```
StringBuffer sb = new StringBuffer(); 
File file = new File("pathinfo.txt"); 
FileInputStream fis = new FileInputStream(file); 
InputStreamReader ir = new InputStreamReader(fis); 
BufferedReader reader = new BufferedReader(ir); 
while(reader.ready()) 
{ 
    sb.append(reader.readLine()); 
} 
reader.close(); 
ir.close(); 
fis.close();
```

thx.


----------



## LordSam (26. Okt 2005)

Hallo Fetze,

so kommst du in deinem Servlet an den 'realen' Pfad deiner Webapplikation ran:

```
ServletContext srvCtx = getServletContext();
		String webAppRoot = srvCtx.getRealPath("/");
```

Da allerdings manche Webserver eine Applikation direkt aus der war/ear Datei aus verwenden solltest Du lieber die folgende Methode verwenden:


```
InputStream in = getServletContext().getResourceAsStream("WEB-INF/myfile.xml");
```

Gruß
- Sam


----------



## Sky (26. Okt 2005)

Fetze hat gesagt.:
			
		

> ich hatte die Frage schon bei den Anfängern gestellt, aber hier passt es wohl besser:



Du musst deine Frage nicht zweimal posten. Ein Mod ist immer so freundlich und verschiebt diese, wenn sie im falschen Bereich ist ;-)


----------

