android读取ini文件

Sectionがないの場合

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;
	}

}


你可能感兴趣的:(android_文件)