读取位于Android项目中src级别的ini文件

读取位于Android项目中src级别的ini文件,android,Android,我有一个apiconfig.ini,在我的文件中 # THE MOVIE DB API KEY api_key = API_KEY 我只想获取API_键(值)并设置为字符串 我创建一个类来读取Ini文件: public class ReadIniFile { //--- Get Key or Value from a .ini File ---// private String configurationFilePath; private final String de

我有一个apiconfig.ini,在我的文件中

# THE MOVIE DB API KEY
api_key = API_KEY
我只想获取API_键(值)并设置为字符串

我创建一个类来读取Ini文件:

public class ReadIniFile {
    //--- Get Key or Value from a .ini File ---//
    private String configurationFilePath;
    private final String defaultConfigPath = "apiconfig.ini"; //Doesn't Work
    private HashMap<String, String> iniFile;

    public HashMap<String, String> getIniFile() {
        return iniFile;
    }

    public void setIniFile(HashMap<String, String> iniFile) {
        this.iniFile = iniFile;
}

public ReadIniFile(String iniConfFilePath, String... keys) {
    configurationFilePath = iniConfFilePath == null ? defaultConfigPath : iniConfFilePath;
    Ini ini = loadIni();
    if (ini != null) {
        if (keys.length > 0) {
            for (String key : keys) {
                iniFile.put(key, ini.get(key).toString());
            }
        }
    }
}

public ReadIniFile(String iniConfFilePath, String key) {
    configurationFilePath = iniConfFilePath == null ? defaultConfigPath : iniConfFilePath;
    Ini ini = loadIni();
    if (ini != null) {
        iniFile.put(key, ini.get(key).toString());
    }
}

public ReadIniFile(String... keys) {
    configurationFilePath = defaultConfigPath;
    Ini ini = loadIni();
    if (ini != null) {
        if (keys.length > 0) {
            for (String key : keys) {
                iniFile.put(key, ini.get(key).toString());
            }
        }
    }
}

public ReadIniFile(String key) {
    configurationFilePath = defaultConfigPath;
    Ini ini = loadIni();
    if (ini != null) {
        iniFile.put(key, ini.get(key).toString());
    }
}

public Ini loadIni() {
    try {
        File file = new File(configurationFilePath);
        Ini ini = new Ini(new File(file.getAbsolutePath()));
        return ini;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return null;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

public HashMap<String, String> getAllIni() {
    return iniFile;
}

public String getSpecificValueIni(String key) {
    return iniFile.get(key);
}

public Collection<String> getAllValues() {
    return iniFile.values();
}

public String getSpecificKeyValueIniToString(String key) {
    return key + " = " + iniFile.get(key);
}
}
公共类ReadIniFile{
//---从.ini文件中获取键或值---//
私有字符串配置文件路径;
私有最终字符串defaultConfigPath=“apiconfig.ini”;//不起作用
私有哈希映射文件;
公共HashMap getIniFile(){
返回文件;
}
公共void setIniFile(HashMap iniFile){
this.ini文件=ini文件;
}
公共ReadInFile(字符串iniConfFilePath、字符串…键){
configurationFilePath=iniConfFilePath==null?默认配置路径:iniConfFilePath;
Ini=loadIni();
如果(ini!=null){
如果(keys.length>0){
用于(字符串键:键){
ini文件.put(key,ini.get(key.toString());
}
}
}
}
public ReadIniFile(字符串iniConfFilePath,字符串键){
configurationFilePath=iniConfFilePath==null?默认配置路径:iniConfFilePath;
Ini=loadIni();
如果(ini!=null){
ini文件.put(key,ini.get(key.toString());
}
}
公共ReadInFile(字符串…键){
configurationFilePath=defaultConfigPath;
Ini=loadIni();
如果(ini!=null){
如果(keys.length>0){
用于(字符串键:键){
ini文件.put(key,ini.get(key.toString());
}
}
}
}
公共ReadInFile(字符串键){
configurationFilePath=defaultConfigPath;
Ini=loadIni();
如果(ini!=null){
ini文件.put(key,ini.get(key.toString());
}
}
公共Ini loadIni(){
试一试{
文件文件=新文件(配置文件路径);
Ini Ini=新Ini(新文件(File.getAbsolutePath());
返回ini;
}catch(filenotfounde异常){
e、 printStackTrace();
返回null;
}捕获(IOE异常){
e、 printStackTrace();
返回null;
}
}
公共HashMap getAllIni(){
返回文件;
}
公共字符串getSpecificValueIni(字符串键){
返回iniFile.get(键);
}
公共集合getAllValues(){
返回infile.values();
}
公共字符串getSpecificKeyValueIniToString(字符串键){
返回key+“=”+iniFile.get(key);
}
}
但是当我运行代码时,他们找不到apiconfig.ini文件

如何获取文件的路径?请记住,文件位于src目录级别,如下所示


或者有更好的方法在硬代码之外保存API密钥吗?

您可以将API密钥存储为字符串资源。它将放在
strings.xml
文件中


API_KEY
apiconfig文件的路径是什么?问题是我使用的是github,所以我不想一直发送这个文件,但我创建了一个新文件config_string.xml,将API_KEY像字符串标记一样放在那里,然后进入我的视图。所以,它起作用了!谢谢