Как мне обратиться к нужному каталогу? - PullRequest
0 голосов
/ 03 октября 2009

Если мой класс Java находится в: `

пакет org.gamehost.flyingame.BookManagementServlet.ModelClass

ака:

BookManagementSoftwareServlet / орг / gamehost / flyingame / BookManagementServlet / ModelClass

и в этом классе, если я хочу вернуть файл из каталога, скажем html-файл, после выполнения этого:

Файл newFile = новый файл ("HTMLFile.html");

Предполагая, что приведенный выше код создаст новый файл, он создаст его в

BookManagementSoftwareServlet

Каталог

или он создаст его в этом каталоге:

BookManagementSoftwareServlet / орг / gamehost / flyingame / BookManagementServlet / ModelClass

если нет, то должен ли я пройти трудный путь, выполнив это:

C: // Workspace / BookManagementSoftwareServlet / орг / gamehost / flyingame / BookManagementServlet / ModelClass

1 Ответ

1 голос
/ 03 октября 2009

Вероятно, нет. Он перейдет в текущий каталог пользователя, если контейнер не изменил это поведение. java.io.File javadoc говорит:

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

Контейнеры часто блокируют создание файлов, поэтому вы можете получить ошибку безопасности. Вы не упомянули свой контейнер, но вот некоторая информация о Tomcat 6 & Security Manager .

Если эти файлы являются временными и восстановленными, вы можете создать их по абсолютному пути, возвращенному из атрибута контекста сервлета javax.servlet.context.tempdir, определенного в SRV.4.7.1 Временные рабочие каталоги спецификации сервлета 2.5 .

Каталог временного хранения требуется для каждого контекста сервлета. Контейнеры сервлетов должны обеспечивать личный временный каталог для каждого контекст сервлета и сделать его доступным через javax.servlet.context.tempdir атрибут контекста. Объекты связанный с атрибутом должен быть типа java.io.File.

Бесполезный комментарий к стилю: я всегда считал, что лучше всего хранить имена пакетов строчными и использовать верблюжий регистр для имени класса. Я обнаружил, что это приводит к меньшей путанице при чтении кода, просмотре трассировок стека и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...