我正在设置像我展示的属性。如果我有我想要检索的值(“a”,或“3”,或两者),有没有办法得到我正在搜索的行号?
示例:“显示第二个参数为”2“的行号,”将返回2“而”显示第一个参数为“a”的行号将返回1
是否可以根据行号进行搜索? 例如:“给我第3行的第二个参数”,同时返回“3” “给我第一行的第一个参数”将返回“a”
try {
Properties properties = new Properties();
properties.setProperty("a", "1");
properties.setProperty("b", "2");
properties.setProperty("c", "3");
FileOutputStream fileOut = new FileOutputStream(myFile);
properties.store(fileOut, "prop name");
fileOut.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
答案 0 :(得分:0)
属性存储为键/值对,因此您只能根据键从属性中检索数据。但是,您也可以使用我认为不会保留任何订单的列表方法。然后,您可以搜索该输出。
以下代码将属性写入文件PropertiesList.txt。您可以搜索此文件以获取所需的任何内容。
package listproperties;
import java.util.Properties;
import java.io.PrintWriter;
import java.io.File;
import java.io.FileNotFoundException;
public class ListProperties {
public static void main(String[] args) {
Properties properties = new Properties();
properties.setProperty("a", "1");
properties.setProperty("b", "2");
properties.setProperty("c", "3");
try {
PrintWriter pw = new PrintWriter(new File("PropertiesList.txt"));
properties.list(pw);
pw.close();
}
catch (FileNotFoundException e) {
System.out.println("Exception: " + e);
}
}
}
答案 1 :(得分:0)
我找到了解决问题的方法。
File progFil = new File("...");
Properties pro = new Properties();
try{
FileInputStream in = new FileInputStream(propFile);
pro.load(in);
System.out.println("All values of the property file : ");
Enumeration em = pro.keys();
while(em.hasMoreElements()){
String str = (String)em.nextElement();
System.out.println(str + ": " + pro.get(str));
}
}
catch(IOException e){
System.out.println(e.getMessage());
}
将返回:
属性文件的所有值:
一个:1
B:2
C:3