读取位于Android项目中src级别的ini文件
我有一个apiconfig.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
# 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像字符串标记一样放在那里,然后进入我的视图。所以,它起作用了!谢谢