Может ли FileOutputStream () принимать относительный путь в качестве аргумента - PullRequest
1 голос
/ 07 апреля 2010

Я создаю объект FileOutputStream. Он принимает файл или строку в качестве аргумента в своем конструкторе.

У меня вопрос: могу ли я дать ему относительный URL-адрес в качестве аргумента для местоположения файла, он, похоже, не работает, но я пытаюсь решить, возможно ли это вообще (если нет, то я буду перестань пытаться).

Если это невозможно, как я могу (из сервлета) получить абсолютный путь (в файловой системе, а не логический URL) к текущему местоположению таким образом, чтобы я мог передать его конструктору.

Часть моей проблемы в том, что мой dev-блок - Windows, но я опубликую его в Unix-блоке, поэтому пути не могут быть одинаковыми, то есть в Windows C: / .... и в unix / usr / ...

Ответы [ 3 ]

3 голосов
/ 07 апреля 2010
2 голосов
/ 07 апреля 2010

Это должно работать с относительным путем, но будьте осторожны с текущим каталогом.Например, если вы используете Eclipse, текущим каталогом является каталог проекта (а не каталог, содержащий классы).

1 голос
/ 07 апреля 2010

Из файла javadoc:

Относительное имя пути, напротив, должно интерпретироваться в терминах информации, взятой из некоторого другого пути.По умолчанию классы в пакете java.io всегда разрешают относительные пути к текущему пользовательскому каталогу.Этот каталог называется системным свойством user.dir и обычно является каталогом, в который была вызвана виртуальная машина Java.

РЕДАКТИРОВАТЬ: Божо прав, я не читал, что этосервлет.Я полагаюсь на его ответ:

ServletContext.getRealPath (относительный путь)

...