Java 在Android的Project/app中加载ini文件?
我在Project/app/apiconfig.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
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