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

问题描述 投票:0回答:2

我需要在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中可见,但代码失败。

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

cq5 jcr
2个回答
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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.