从java中的/ etc / designs中读取文件

时间:2015-11-21 23:24:52

标签: cq5 jcr

我需要在JCR中存储一个字符串,该字符串将在OSGi包中使用(以便可以在CRXde中根据需要进行修改) 我已将我的字符串存储在/etc/designs/shc/components/linkcheck/regex.txt/jcr:content位置,其中regex.txt是包含我的正则表达式字符串的文件。

我正在使用以下代码来读取捆绑中的String但没有运气。它正在NullPointerException

投掷resourceResolver.getResource
Resource dataResource = resourceResolver.getResource("/etc/designs/shc/components/linkcheck/regex.txt/jcr:content"); 
Node node = dataResource.adaptTo(Node.class);
String regex = node.getProperty("jcr:data").getValue().toString();

regex.txt的类型为nt:file,数据在CRXde中可见,但代码失败。

任何方向都将受到高度赞赏!

2 个答案:

答案 0 :(得分:1)

这应该有用 -

Resource dataResource = resourceResolver.getResource("/etc/designs/shc/components/linkcheck/regex.txt"); 
Node jcnode = dataResource.adaptTo(Node.class).getNode("jcr:content");
InputStream is = jcnode.getProperty("jcr:data").getBinary().getStream();
StringBuilder sb = new StringBuilder();String line;
try {
    br = new BufferedReader(new InputStreamReader(is));
    while ((line = br.readLine()) != null) {
    sb.append(line);
    }
} catch (IOException e) {
            //do something
}
//do whatever with sb

答案 1 :(得分:0)

由于在resourceResolver.getResource(...)处抛出NullPointerException,请检查resourceResolver是否为null。