У меня возникли проблемы с использованием конфигурации Apache commons для чтения файла ini. Я приложил импорт, если я что-то упустил. Ниже приведен пример, который я нашел в stackoverflow, и, насколько я могу найти, других примеров для просмотра нет. Проблема iniObj
. При использовании Eclipse он выделен красным цветом.
Если я инициализирую переменную, new "HierarchicalINIConfiguration(iniFile);
разозлится и захочет добавить try/catch или throws... что не должно быть проблемой... но тогда try/catch или throws разозлится и скажет: "Никакое исключение типа ConfigurationException не может быть брошенный; тип исключения должен быть подклассом Throwable».
Что затем привело меня к этому вопросу. Я добавил общий язык 3.1. У меня есть общая конфигурация 1.9, общие коллекции 3.2.1. ведение журнала Commons 1.1.1. Я также пробовал это с общей конфигурацией 1.8 и lang 2.6. Теперь я получаю новую ошибку «Исключение в потоке «main» java.lang.NullPointerException в 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");
}
}
}
Исходный код из Stack Overflow:
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");
}
}