право доступа для разбора XML в Java - PullRequest
0 голосов
/ 11 августа 2011

привет, я должен выполнить эту команду:

    docRules = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse( new File(IeplcDeployRules.clx));

Когда я пытаюсь создать парсер, я получаю следующую ошибку:

java.io.FileNotFoundException: /.../IeplcDeployRules.clx (Permission denied)

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

-rwxr-xr-x 1 ieplcop ieplcdev  3424 Aug 11 17:16 IeplcDeployRules.clx

Я не хочу менять разрешение, поскольку файл НУЖЕН только для чтения из моего Java-приложения.Я полагаю, что должен быть способ указать, что файл должен быть открыт в режиме только для чтения.

Я смотрю возможные параметры File () parse () и .newDocumentBuilder (), но ни один из них не позволяет мнеуказать, что операция доступна только для чтения !!

Есть идеи о том, как продолжить?

Cheers, Ste

Ответы [ 2 ]

4 голосов
/ 11 августа 2011

Я не знаю, что делает DocumentBuilder внутри, я должен был бы прочитать его источник. Но вы можете использовать другой InputSource вместо File, чтобы у вас был полный контроль. Например, FileReader .

documentBuilder.parse(new InputSource(new FileReader(...));
0 голосов
/ 11 августа 2011

Вы должны передать InputStream методу parse вместо File.

Например:

docRules = DocumentBuilderFactory.newInstance()
    .newDocumentBuilder().parse( new FileInputStream(new File("IeplcDeployRules.clx")));
...