Apache commons 構成を使用して ini ファイルを読み取るのに問題があります。何か不足している場合に備えて、インポートを添付しました。以下は、stackoverflow で見つけた例です。私が見つけることができる限り、他に見るべき例はありません。問題はiniObj
. Eclipse を使用すると、赤で強調表示されます。
変数を初期化し、new "HierarchicalINIConfiguration(iniFile);
怒って try/catch または throws を追加したい場合...これは問題ないはずです...しかし、try/catch または throws は怒って、「ConfigurationException 型の例外はスローできません」と言う; 例外タイプは、Throwable のサブクラスでなければなりません。"
それから私はこの質問に行きました。commons lang 3.1 を追加しました。コモンズ構成 1.9、コモンズ コレクション 3.2.1 があります。commons logging 1.1.1 も同様です。Commons config 1.8およびlang 2.6でもこれを試しました。今、新しいエラー「Exception in thread "main" java.lang.NullPointerException at com.toolbox.dev.ReadIni.main(ReadIni.java:28)」が表示されるようになりましたエラーを解決します。
私のコード:
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalINIConfiguration;
import org.apache.commons.configuration.SubnodeConfiguration;
public static void main(String[] args) throws ConfigurationException {
String iniFile = "file.ini";
HierarchicalINIConfiguration iniConfObj = new HierarchicalINIConfiguration(iniFile);
// Get Section names in ini file
Set setOfSections = iniConfObj.getSections();
Iterator sectionNames = setOfSections.iterator();
while(sectionNames.hasNext()) {
String sectionName = sectionNames.next().toString();
HierarchicalINIConfiguration iniObj = null;
SubnodeConfiguration sObj = iniObj.getSection(sectionName);
Iterator it1 = sObj.getKeys();
while (it1.hasNext()) {
// Get element
Object key = it1.next();
System.out.print("Key " + key.toString() + " Value " +
sObj.getString(key.toString()) + "\n");
}
}
}
スタック オーバーフローの元のコード:
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.configuration.HierarchicalINIConfiguration;
import org.apache.commons.configuration.SubnodeConfiguration;
public class ReadIni {
public static void main(String[] args) {
String iniFile = "";
HierarchicalINIConfiguration iniConfObj = new HierarchicalINIConfiguration(iniFile);
// Get Section names in ini file
Set setOfSections = iniConfObj.getSections();
Iterator sectionNames = setOfSections.iterator();
while(sectionNames.hasNext()) {
String sectionName = sectionNames.next().toString();
SubnodeConfiguration sObj = iniObj.getSection(sectionName);
Iterator it1 = sObj.getKeys();
while (it1.hasNext()) {
// Get element
Object key = it1.next();
System.out.print("Key " + key.toString() + " Value " +
sObj.getString(key.toString()) + "\n");
}
}