Java 如何按文件中的顺序获取属性
我正在使用文件属性文件并循环浏览该文件Java 如何按文件中的顺序获取属性,java,Java,我正在使用文件属性文件并循环浏览该文件 Properties Config= new Properties(); Config.load(new FileInputStream("c:\\Config.properties")); Enumeration e = Config.propertyNames(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); System.out.println(key
Properties Config= new Properties();
Config.load(new FileInputStream("c:\\Config.properties"));
Enumeration e = Config.propertyNames();
while (e.hasMoreElements())
{ String key = (String) e.nextElement();
System.out.println(key + " -- " + Config.getProperty(key));
}
我在C:\Config.properties中的输入是
输入
fun1=abc
fun2=pqr
fun3 mno
输出
fun2——pqr
fun1——abc
fun3——mno
我怎样才能在配置文件中准确地得到它。这是不可能使用的,因为它扩展了本质上是无序的
您最好的选择是自己使用例如a或a来读取和解析它
然而,我想知道为什么订购如此重要。如果您详细阐述了这背后的功能需求,我可能会提出一些替代方案。根据给定的示例,我能向您建议的最接近的内容如下:
List<String> funs = new ArrayList<String>();
for (int i = 1; i < Integer.MAX_VALUE; i++) {
String fun = config.getProperty("fun" + i);
if (fun == null) break;
funs.add(fun);
}
// ...
List funs=new ArrayList();
对于(int i=1;i
这是不可能使用的,因为它扩展了本质上是无序的
您最好的选择是自己使用例如a或a来读取和解析它
然而,我想知道为什么订购如此重要。如果您详细阐述了这背后的功能需求,我可能会提出一些替代方案。根据给定的示例,我能向您建议的最接近的内容如下:
List<String> funs = new ArrayList<String>();
for (int i = 1; i < Integer.MAX_VALUE; i++) {
String fun = config.getProperty("fun" + i);
if (fun == null) break;
funs.add(fun);
}
// ...
List funs=new ArrayList();
对于(int i=1;i
属性不是有序映射,因此您可能希望从加载的属性创建一个映射。这保证了密钥自然有序。但我假设您希望该顺序是在属性文件中指定的顺序。没有办法自动做到这一点。你需要自己编写代码
正如BalusC所建议的那样,从一开始就使用文件API逐行读取,创建一个Pair/Tuple对象并将其插入List对象中,或者根据您的使用要求将其添加到SortedMap中。属性不是有序映射,因此您可能希望从加载的属性创建一个对象。这保证了密钥自然有序。但我假设您希望该顺序是在属性文件中指定的顺序。没有办法自动做到这一点。你需要自己编写代码
正如BalusC建议从使用文件API开始逐行读取一样,创建一个Pair/Tuple对象并将其插入List对象中,或者根据您的使用要求将其添加到SortedMap中如果没有一个库已经这样做了,我会感到震惊。例如,试试看。如果没有一个库已经这样做了,我会感到震惊。例如,请尝试。谢谢您的回复,我正在尝试将属性文件中的方法传递给它本身。我仍然不理解功能需求。无论如何,我编辑了答案并添加了一个建议,我想这最适合你的要求。它必须至少给你新的见解。哦,请尽量尊重你的朋友。变量名以小写字母开头。我正在读取excel文件,需要逐列执行一些操作,例如,对于第1列,我只需要调用两个方法,对于下一列,我需要调用第7列方法,依此类推。每次这些值都在更改,所以我尝试将其设置为CongigurableColumn 1=fun1,fun3,Column2=fun1,fun2,fun3,fun4,Column3=fun4 only等等。为了得到回复,我尝试将属性文件中的方法传递给它自己。我仍然不理解功能要求。无论如何,我编辑了答案并添加了一个建议,我想这最适合你的要求。它必须至少给你新的见解。哦,请尽量尊重你的朋友。变量名以小写字母开头。我正在读取excel文件,需要逐列执行一些操作,例如,对于第1列,我只需要调用两个方法,对于下一列,我需要调用第7列方法,依此类推。每次这些值都在更改,所以我尝试将其设置为congigurableColumn1=fun1、fun3、Column2=fun1、fun2、fun3、fun4、Column3=fun4等等