2016-12-02 54 views
0

希望有人能够提供帮助,我在java中比较新,并试图解决如何使用properties函数来读取多个属性值,而不一定按顺序或全部列表,然后将它们放入数组或字符串中,这样我就可以传递给另一个类来执行写入文件等“内容”。有可能有数百个属性值,只想挑选我想要的。 我可以得到一个像properties.getProperty(“ip”);并分配到一个字符串,但具有多个按照下面的问题...将多个java属性值读入字符串或数组

任何帮助将不胜感激。

Properties properties = new Properties(); 

try { 
    properties.load(new FileInputStream(args[0])); 
} 
catch (IOException e) { 
    System.out.println("Error - IOException - File not found..."); 
} 

String model = properties.getProperty("model"); 
String codeLevel = properties.getProperty("codeLvl"); 

String[] dmdCommand = new String[properties.getProperty("ip") 
     + properties.getProperty("rangeS") 
     + properties.getProperty("rangeL") 
     + properties.getProperty("PhyPG") 
     + properties.getProperty("PhyLDEV") 
     + properties.getProperty("PhyProc") 
     + properties.getProperty("PhyExG") 
     + properties.getProperty("PhyExLDEV") 
     + properties.getProperty("PhyCMPK")]; 

如果您需要其他信息或数据样本,我们乐意提供。 欢呼声,并提前致谢:)

+1

考虑使用https://docs.oracle.com/javase/7/docs/api/java/util/PropertyResourceBundle.html –

回答

1

如果您知道属性的“键”,则可以使用字符串的ArrayList来存储属性。

例如:

List<String> propertyList = new ArrayList<String>(); 
propertyList.add(properties.getProperty("rangeS")); 

在这里,我假设你不知道你要多少个键,从特性,因此捡到使用ArrayList的建议,但如果你知道要选择的键的数量,你应该使用一个字符串数组。

例如

String[] propertyArray = new String[limit]; 

for(int i=0;i<limit;i++){ 
    propertyArray[i]= new String(properties.getProperty(myKey)); 
} 

在这里, “的myKey” 可以被编码为动态变化。

+0

谢谢阿提特,我认为这应该工作,并将需要使用已知和未知的数目键。对于你的“myKey”被编码的建议,你会怎么做,因为for循环会一遍又一遍地遍历它? – Graham

+0

你可以给每一次迭代的方法调用或类似的东西。 我的意思是键必须来自某个地方,它们也可以是用户输入,或者可以从另一个文件中读取。 一旦你得到一个新的字符串,你可以简单地将其设置为“myKey”变量并使用它。 –