根据这个帖子: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了