android 读取ini文件

来源:互联网 发布:腾讯程序员工资 编辑:程序博客网 时间:2024/06/01 03:58
package co.test;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.Properties;import android.content.Context;public class IniReaderNoSection {public Properties properties = null;/** * ファイルのアドレス---->res/raw/**.ini  * resourceId--->R.raw.cc *  */public IniReaderNoSection(Context context, int resourceId) {InputStream inputStream = context.getResources().openRawResource(resourceId);try {properties = new Properties();properties.load(inputStream);} catch (Exception ex) {ex.printStackTrace();}}/** * ファイルのアドレス---->例えば、SD存储卡 *  */public IniReaderNoSection(String filename) {File file = new File(filename);try {properties = new Properties();properties.load(new FileInputStream(file));} catch (Exception ex) {ex.printStackTrace();}}public String getIniKey(String key) {if (properties.containsKey(key) == false) {return null;}return String.valueOf(properties.get(key));}}

Sectionがありの場合

package co.test;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Properties;public class IniReaderHasSection {private Map sections;private String secion;private Properties properties;/** * ファイルのアドレス---->例えば、SD存储卡 *  */public IniReaderHasSection(String filename) throws IOException {sections = new HashMap();BufferedReader reader = new BufferedReader(new FileReader(filename));read(reader);reader.close();}private void read(BufferedReader reader) throws IOException {String line;while ((line = reader.readLine()) != null) {parseLine(line);}}private void parseLine(String line) {line = line.trim();if (line.matches("\\[.*\\]") == true) {secion = line.replaceFirst("\\[(.*)\\]", "$1");properties = new Properties();sections.put(secion, properties);} else if (line.matches(".*=.*") == true) {if (properties != null) {int i = line.indexOf('=');String name = line.substring(0, i);String value = line.substring(i + 1);properties.setProperty(name, value);}}}public String getValue(String section, String name) {Properties p = sections.get(section);if (p == null) {return null;}String value = p.getProperty(name);return value;}}


原创粉丝点击