gpt4 book ai didi

java - 在 Java 中读取 ini 文件时出现问题

转载 作者:行者123 更新时间:2023-11-30 09:31:19 31 4
gpt4 key购买 nike

我在使用 Apache 公共(public)配置读取 ini 文件时遇到问题。我附上了进口 cargo ,以防我遗漏了一些东西。下面是我在 stackoverflow 上找到的一个示例,据我所知,没有其他示例可供查看。问题是 iniObj。使用 Eclipse,它以红色突出显示。

如果我初始化变量,new "HierarchicalINIConfiguration(iniFile); 会生气并想添加一个 try/catch 或 throws...这应该没问题...但是 try/catch 或 throws 生气并说“不能抛出 ConfigurationException 类型的异常;异常类型必须是 Throwable 的子类。”

然后把我带到了this question .我添加了 commons lang 3.1。我有 commons config 1.9,commons collections 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");
}
}
}

来自 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");
}
}

最佳答案

因为您已经将 HierarchicalINIConfiguration(“main”中的第二行)初始化为:

   HierarchicalINIConfiguration iniConfObj = new HierarchicalINIConfiguration(iniFile);

我相信您想从代码中删除 HierarchicalINIConfiguration iniObj = null;(大约 5 行以下)并更改

  SubnodeConfiguration sObj = iniObj.getSection(sectionName); 

(使用 iniConfObj 代替 iniObj)

   SubnodeConfiguration sObj = iniConfObj.getSection(sectionName); 

关于java - 在 Java 中读取 ini 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937014/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com