2010-04-07 6 views
1

Je crée un objet FileOutputStream. Il prend un fichier ou une chaîne comme argument dans son constructeur. Ma question est, puis-je lui donner une URL relative comme argument pour l'emplacement d'un fichier, cela ne semble pas fonctionner, mais j'essaye de travailler si c'est possible du tout (sinon va arrêter d'essayer). Si ce n'est pas possible, comment puis-je (d'une servlet) obtenir le chemin absolu (sur le système de fichiers, pas l'URL logique) à l'emplacement actuel de telle manière que je puisse transmettre cela au constructeur. Une partie de mon problème est que ma boîte de dev est Windows mais je vais publier cela dans une boîte Unix, donc les chemins ne peuvent pas être les mêmes sur Windows C:/.... et sur unix/usr/.. .Can FileOutputStream() peut prendre un chemin relatif en tant qu'argument

Répondre

3
+0

Peut-être que vous voulez dire getRealPath au lieu de getAbsolutePath –

+0

Oui, corrigé comme vous commentiez. Répondre à partir de mobile pose des risques pour de telles erreurs. – Bozho

+0

Merci j'ai utilisé ... request.getSession(). GetServletContext(). GetRealPath (request.getServletPath()) – Ankur

1

de la javadoc du fichier:

Un chemin relatif, en revanche, doit être interprété en termes d'information provenant d'un autre chemin. Par défaut, les classes du package java.io résolvent toujours les chemins d'accès relatifs par rapport au répertoire utilisateur en cours. Ce répertoire est nommé par la propriété système user.dir et est généralement le répertoire dans lequel la machine virtuelle Java a été appelée.

EDIT: Bozho a raison, je n'ai pas lu que c'était une servlet. Je remets à sa réponse:

ServletContext.getRealPath(relativePath)

+0

Ce n'est pas la voie à suivre avec les servlets – Bozho

2

Cela devrait fonctionner avec un chemin relatif, mais attention à ce que le répertoire actuel. Par exemple, si vous utilisez Eclipse, le répertoire en cours est le répertoire du projet (et pas le répertoire contenant les classes).

+0

Merci, c'est utile .. J'utilise eclipse – Ankur

Questions connexes