从res文件夹blackberry中读取文件

时间:2012-11-21 10:18:35

标签: blackberry java-me inputstream readfile

我想从黑莓手机上的“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();

但我得到了一个例外。 任何人都可以帮我阅读文件并给我正确的路径吗?

2 个答案:

答案 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