我想从黑莓手机上的“res”文件夹中读取文件。我使用的文件是文件javascript。
我使用了这段代码InputStream in = classs.getResourceAsStream("file.js");
。但我得到“找不到这条路”,我也用
String srcFile = "/res/ressourcesWeb/file.js";
FileConnection srcConn = (FileConnection) Connector.open(srcFile, Connector.READ);
InputStream in = srcConn.openInputStream();
但我得到了一个例外。 任何人都可以帮我阅读文件并给我正确的路径吗?
答案 0 :(得分:1)
您的res
文件夹必须位于src
文件夹中,才能从您的代码中访问。
src
文件夹是项目包的根文件夹。并且src文件夹之外的所有文件夹在运行时对代码都是不可见的。
查看此帖子了解详情:Blackberry runtime error: FRIDG: could not find img/logo.png
描述了文件位置原则。
答案 1 :(得分:0)
您实际上不需要将您的资源放在src
文件夹下,以便可以从您的代码中访问它们。
这是一种方式,但我不认为这是最好的方式。 src
文件夹下的文件应该是源代码,而不是图像或其他资源。对于JavaScript资源,它们是否应该在src
之下是有争议的。我见过的大多数项目都使用src
文件夹仅用于 Java 源代码。
在任何情况下,如果您想将文件(或其他资源,如图像)保留在src文件夹之外,您可以这样做。在创建新项目时,默认情况下,Eclipse的BlackBerry插件实际上会像这样设置它。顶层有一个res
文件夹,位于src
旁边(不在其下)。
如果你有
src\
src\com\mycompany\myapp\
res\
res\resourcesWeb\
res\resourcesWeb\file.js
然后,您可以像这样打开文件:
String jsPath = "/resourcesWeb/file.js";
InputStream input = getClass().getResourceAsStream(jsPath);
byte [] content = IOUtilities.streamToBytes(input);
String contentAsString = new String(content);
P.S。 You also can probably do this:
String jsPath = "/file.js";
InputStream input = getClass().getResourceAsStream(jsPath);
并且未指定资源的路径。显然,只有在资源文件夹中没有命名冲突时才会有效(例如,您没有/res/resourcesWeb/file.js
和/res/otherPath/file.js
)