我需要在BlackBerry应用程序中从classpath读取资源文件。我的项目的目录结构很常见:在src目录下有2个子目录,一个表示源程序包root,另一个表示资源根目录。
当我尝试从类路径Class.getResourceAsStream读取任何资源时,retures null
InputStream rStream = null;
String path = "/res/default_config.xml";
try {
rStream = getClass().getResourceAsStream(path);
} finally {
try {
if (rStream != null) {
byte[] data = IOUtilities.streamToBytes(rStream);
System.out.println(new String(data));
rStream.close();
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
我应该如何正确阅读classpath资源?
答案 0 :(得分:7)
您是否尝试将xml文件直接放入src文件夹并使用getClass()。getResourceAsStream(“default_config.xml”); ?
实际上无法重现。
在模拟器8800 eJDE 4.2.1上测试
文件放在src / res /文件夹中。
答案 1 :(得分:0)
即使它是作为在设备上运行的COD文件生成的,也会在每次构建时创建JAR文件。可能值得检查以确保将xml文件放在您希望它所在的目录中,因为您可以将资源存储在应用程序的子目录中并使用getClass().getResourceArStream();
答案 2 :(得分:0)
我认为您将路径指定为不正确的方式。您只需从指定路径的开头删除/
即可。如果您指定/
。然后它会检查你的资源文件夹