根据这个帖子:http://www.datouinfo.com/?p=1187
的方法。
本人做的一个读取SD卡根目录下面的ini配置文件内容
的方法。
本人做的一个读取SD卡根目录下面的ini配置文件内容
package com.example.ini;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
//加载输入输出库
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Map.Entry;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import android.os.Environment;
import java.io.File;
import java.io.IOException;
import org.dtools.ini.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//插入本人的代码
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡能否存在
if (sdCardExist)
{
//sdDir = Environment.getExternalStorageDirectory();//获取跟目录
File sdCardDir = Environment.getExternalStorageDirectory();
System.out.println("sdCardDir = "+sdCardDir);
// String filename = "/sdcard/" + "T.ini";
//String filename=sdCardDir+"/"+"T.ini";
IniFile ini = new BasicIniFile(false);// 不使用大小写敏感
IniFileReader reader = new IniFileReader(ini, new File(filename));
try {
reader.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
IniSection sec_sys = ini.getSection("system");
String stationNum = sec_sys.getItem("stationNum").getValue();
System.out.println("stationNum = " + stationNum);
IniSection sec_station = ini.getSection("station");
for (IniItem item : sec_station.getItems()) {
String name=item.getName();
String value=item.getValue();
System.out.println(item.getName() + " = " + item.getValue());
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
配置文件加入了,读取许可:
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
T.Ini文件内容:
#############################################
# 预警显示系统配置文件 #
#############################################
[system]
#车站数量
stationNum = 5
#上行开始公里标
upStartPost = 100
#下行开始公里标
downStartPost = 100
[station]
#编号 = 车站名,公里标,上行股道数,下行股道数
station1 = 北京西站,100.077,2,2
station2 = 天津站,110.077,2,2
station3 = 廊坊站,120.077,2,2
station4 = 德州东站,130.077,2,2
station5 = 上海虹桥站,140.077,2,2
#############################################
完整源码云盘下载:
https://yunpan.cn/c6d2845EN8gTc 访问密码 8c56
研究了好几天 都没有读取到文件 真是崩溃了!
无可奈何 周末 加班了 请大家帮看看吧 非常感谢!
解决方案
30
你说读不了有没有先判断文件能否存在 然后在读取流,或有什么错误没。
50
应该是你配置文件的编码格式不对,需要修改成UTF8
20
本人去写IniFileReader 吧,你需要做的是第一步,以File的形式读取出inputstream出来,然后保存看看事实不会编码问题,不是继续去解析inputstream就ok了