Blackberry читает локальный файл свойств в проекте

У меня есть файл config.properties в корне моего проекта Blackberry (там же, где находится файл 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");

Итак, в моем классе «файл» должен иметь все содержимое файла config.properties, а имя файла должно иметь это значение «/config.properties».

Но «имя» равно null, потому что файл не может быть найден... Я знаю, что это путь к файлу, который должен быть другим, но я не знаю, что я могу изменить... Класс находится в пакете com .mycompany.blackberry.utils

Благодарю вас!


person Dachmt    schedule 07.05.2010    source источник


Ответы (2)


Я думаю, вам нужно поместить файл config.properties в исходную папку при сборке проекта, вы можете создать папку «ресурсы» как папку src и поместить в нее файл конфигурации, чем вы можете получить файл в приложении

person Sherlock    schedule 12.10.2010

Попробуйте поместить файл в тот же пакет, что и класс?

person bryanallott    schedule 07.05.2010
comment
Я не хочу размещать свой файл конфигурации где-то в пакете, он должен быть легко доступен в проекте на будущее. - person Dachmt; 08.05.2010
comment
причина в том, что путь / config.properties — если вы попытаетесь поместить его туда, найдет ли он файл? а если нет, то что-то не так с настройкой упаковки/проекта? код выглядит нормально. я использую что-то очень похожее для получения текстов EULA, и это работает для меня - person bryanallott; 08.05.2010