Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android的Project/app中加载ini文件?_Java_Android_Ini - Fatal编程技术网

Java 在Android的Project/app中加载ini文件?

Java 在Android的Project/app中加载ini文件?,java,android,ini,Java,Android,Ini,我在Project/app/apiconfig.ini中有一个文件 内部文件: api_key = API_KEY 我创建类来读取ini文件并获取值: package br.com.adley.myseriesproject.library; import org.ini4j.Ini; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util

我在Project/app/apiconfig.ini中有一个文件 内部文件:

api_key = API_KEY
我创建类来读取ini文件并获取值:

package br.com.adley.myseriesproject.library;

import org.ini4j.Ini;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;

/**
 * Created by Adley on 15/04/2016.
 * Read a ini config file
 */
public class ReadIniConfigFile {
    private String configurationFile;
    private final String defaultConfigPath = "apiconfig.ini";
    private HashMap<String, String> iniFile;

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

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

    public ReadIniConfigFile(String iniConfFilePath, String... keys) {
        configurationFile = 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 ReadIniConfigFile(String iniConfFilePath, String key) {
        configurationFile = iniConfFilePath == null ? defaultConfigPath : iniConfFilePath;
        Ini ini = loadIni();
        if(ini != null){
            iniFile.put(key,ini.get(key).toString());
        }
    }
    public ReadIniConfigFile(String... keys) {
        configurationFile =  defaultConfigPath;
        Ini ini = loadIni();
        if(ini != null){
            if(keys.length > 0){
                for (String key:keys) {
                    iniFile.put(key,ini.get(key).toString());
                }
            }
        }
    }

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

    public Ini loadIni() {
        try{
            Ini ini = new Ini(new File(configurationFile));
            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);
    }

}
package br.com.adley.myseriesproject.library;
导入org.ini4j.Ini;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.util.Collection;
导入java.util.HashMap;
/**
*阿德利于2016年4月15日创作。
*读取ini配置文件
*/
公共类ReadInConfigFile{
私有字符串配置文件;
私有最终字符串defaultConfigPath=“apiconfig.ini”;
私有哈希映射文件;
公共HashMap getIniFile(){
返回文件;
}
公共void setIniFile(HashMap iniFile){
this.ini文件=ini文件;
}
公共ReadIniConfigFile(字符串iniConfFilePath、字符串…键){
configurationFile=iniConfFilePath==null?默认配置路径:iniConfFilePath;
Ini=loadIni();
如果(ini!=null){
如果(keys.length>0){
用于(字符串键:键){
ini文件.put(key,ini.get(key.toString());
}
}
}
}
public ReadIniConfigFile(字符串iniConfFilePath,字符串键){
configurationFile=iniConfFilePath==null?默认配置路径:iniConfFilePath;
Ini=loadIni();
如果(ini!=null){
ini文件.put(key,ini.get(key.toString());
}
}
公共ReadIniConfigFile(字符串…键){
configurationFile=defaultConfigPath;
Ini=loadIni();
如果(ini!=null){
如果(keys.length>0){
用于(字符串键:键){
ini文件.put(key,ini.get(key.toString());
}
}
}
}
公共ReadIniConfigFile(字符串键){
configurationFile=defaultConfigPath;
Ini=loadIni();
如果(ini!=null){
ini文件.put(key,ini.get(key.toString());
}
}
公共Ini loadIni(){
试一试{
Ini Ini=新Ini(新文件(配置文件));
返回ini;
}catch(filenotfounde异常){
e、 printStackTrace();
返回null;
}捕获(IOE异常){
e、 printStackTrace();
返回null;
}
}
公共HashMap getAllIni(){
返回文件;
}
公共字符串getSpecificValueIni(字符串键){
返回iniFile.get(键);
}
公共集合getAllValues(){
返回infile.values();
}
公共字符串getSpecificKeyValueIniToString(字符串键){
返回key+“=”+iniFile.get(key);
}
}
我的问题是,如何获取此ini文件的路径?
有其他方法在代码外保存api_密钥吗?因为我正在使用GitHub,不想共享我的私钥。

使用Path类,您可以在文件系统上获取文件的真实路径。根据您的喜好自定义以下代码:

Path path = Paths.get("loremipsum.txt").toRealPath(LinkOption.NOFOLLOW_LINKS);
请参阅有关该类的文档


由于您已经有了一个类来准备外部文件以获取api密钥,只需将该文件路径放入
.gitignore
文件中,它就不会提交和/或推送到github。

我已经尝试过了,但是path.get没有引用,我的意思是,path;工作正常,但当我尝试使用路径时。让Android Studio说“无法解析符号‘路径’。然后我搜索了导入一些类,但没有找到任何人
path
是java 7类,您的项目设置为java的哪个版本?我在项目中使用jdk1.8.074并编译项目:compileSdkVersion 23