Date: 2014dec15
Update: 2025oct11
Language: Java
Q. Java: Very simple way to read an .ini file
A. Full example:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.LinkedHashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Demo {
static class IniFile {
// Does not handle comments or blank lines
private static Pattern secpat = Pattern.compile("\\[(.+)\\]");
private static Pattern vpat = Pattern.compile("([^=]+)=(.*)");
// LinkedHashMap preserves order
public static LinkedHashMap<String, String> load(final String strIniFile) {
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
String section = "";
try {
InputStream in = new FileInputStream(strIniFile);
BufferedReader br = new BufferedReader(new InputStreamReader(in), 5 * 1024);
String line;
while ((line = br.readLine()) != null) {
Matcher secMatcher = secpat.matcher(line);
if (secMatcher.matches()) {
section = secMatcher.group(1);
continue;
}
Matcher vMatcher = vpat.matcher(line);
if (vMatcher.matches()) {
map.put(section + "." + vMatcher.group(1), vMatcher.group(2));
continue;
}
}
in.close();
}
catch (IOException ex) {
System.err.println("Could not read because " + ex.getMessage());
}
return map;
}
}
public static final void main(String[] args) {
var ini = IniFile.load("test.ini");
System.out.println("ini=" + ini);
}
}
With file test.ini:
[general]
debug=yes
another_variable=maybe
Output:
ini={general.debug=yes, general.another_variable=maybe}