Blackberry在项目中读取本地属性文件

时间:2010-05-07 20:05:01

标签: java file blackberry file-io

我在blackberry项目的根目录下有一个config.properties文件(与Blackberry_App_Descriptor.xml文件相同),我尝试访问该文件以进行读写。 见下面我的课程:

public class Configuration {
private String file;
private String fileName;

public Configuration(String pathToFile) {
    this.fileName = pathToFile;

    try {
        // Try to load the file and read it
        System.out.println("---------- Start to read the file");
        file = readFile(fileName);
        System.out.println("---------- Property file:");
        System.out.println(file);
    } catch (Exception e) {
        System.out.println("---------- Error reading file");
        System.out.println(e.getMessage());
    }
}

/**
 * Read a file and return it in a String
 * @param fName
 * @return
 */
private String readFile(String fName) {
    String properties = null;

    try {
        System.out.println("---------- Opening the file");
        //to actually retrieve the resource prefix the name of the file with a "/"
        InputStream is = this.getClass().getResourceAsStream(fName);

        //we now have an input stream. Create a reader and read out
        //each character in the stream.
        System.out.println("---------- Input stream");
        InputStreamReader isr = new InputStreamReader(is);

        char c;

        System.out.println("---------- Append string now");
        while ((c = (char)isr.read()) != -1) {
            properties += c;
        }
    } catch (Exception e) {

    }

    return properties;
}

}

我像这样调用我的类构造函数:

Configuration config = new Configuration("/config.properties");

所以在我的班级中,“file”应该包含config.properties文件的所有内容,而fileName应该具有此值“/config.properties”。

但是“name”为null因为无法找到该文件... 我知道这是文件的路径应该是不同的,但我不知道我可以改变什么...该类在com.mycompany.blackberry.utils包中

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为您需要在构建项目时将config.properties文件放入源文件夹中,您可以创建一个“resources”文件夹作为src文件夹并将配置文件放入其中,而不是获取文件在应用程序

答案 1 :(得分:0)

尝试将该文件放在与该类相同的包中?

答案 2 :(得分:0)

Class clazz = Class.forName("Configuration");
InputStream is = addFile.getResourceAsStream(fName);