在Java解析XML访问权

问题描述:

你好,我必须执行此命令:当我尝试创建一个解析器我碰到下面的错误在Java解析XML访问权

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()的可能参数,但它们都没有让我指定该操作是只读的!

有关如何进行的任何想法?

干杯, 科技教育

+0

能否请你修复代码片段吗?这可能很重要。 – biziclop

+0

这是怎么发生的?你使用的是tomcat吗? –

+0

我不知道什么是片段。抱歉。 – Stefano

我不知道是什么DocumentBuilder内部做,我会看它的来源。但是您可以使用不同的InputSource而不是File,以便完全控制。例如一个FileReader

documentBuilder.parse(new InputSource(new FileReader(...)); 
+0

我已经尝试过了,但解析不能应用于这样的对象!文件或输入源只接受! – Stefano

+0

是的,但InputSource只是一个包装...我添加了一个例子 –

你应该传递一个InputStreamparse方法,而不是一个File

例如:

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