读取属性文件并保存到对象

时间:2012-12-05 16:16:35

标签: java

我有一个名为person.properties的属性文件。我需要添加几个人的条目。 人员条目将包含NameAgeTelephone。此Property文件中将有许多Person条目。

ID : 1
Name: joe
Age: 30
Telephone: 444444
ID : 2
Name: Anne
Age: 20
Telephone: 575757
ID : 3
Name: Matt
Age: 17
Telephone : 7878787
ID : 4
Name: Chris
Age: 21
Telephone : 6767676

我需要读取属性文件并将每条记录保存在Person对象中。

Person p = new Person();
p.setId(ADD THE FIRST VALUE OF ID FROM THE PROPERTY FILE);
p.setName(ADD THE FIRST VALUE OF NAME FROM THE PROPERTY FILE);

喜欢明智..并将其保存在数组中。

我想,我将无法从上面的person.properties文件中读取并根据需要将其保存到person对象。因为我在属性文件中有相同的key。因此,我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

您不必使用Property方法,只需将文件作为文本文件读取并手动解析:

Scanner s = new Scanner(new File("propertyfile.properties"));
while (s.hasNextLine()) {
    String id = s.nextLine().split(":")[1].trim();
    String name = s.nextLine().split(":")[1].trim();
    String age = s.nextLine().split(":")[1].trim();
    String phone = s.nextLine().split(":")[1].trim();
}

答案 1 :(得分:2)

您描述的文件格式实际上不是属性文件。只需使用

之类的东西自己阅读
public File openFile(String URI); // write this yourself

public void readFile(File names) {
  BufferedReader br = new BufferedReader(new FileReader(name));

  while(br.ready()) {
    String next = br.readLine();
    String[] split = next.split(" : ");
    // handle each case, etc.

修改文件

如果要修改密钥并将其写回到相同位置,则应使用数据库。以下是两个免费的:MySQLSQLite。以这种方式编辑文件是可能的,但是使用数据库更容易实现它,这就是它的设计目标。

答案 2 :(得分:1)

我认为你所做的事实上并不是java中属性文件的目的。不过,这里是如何处理属性文件: 的

    Properties prop = new Properties();

    try {
           //load a properties file
        prop.load(new FileInputStream("file.properties"));

           //get the property value and print it out
            System.out.println(prop.getProperty("name"));
        System.out.println(prop.getProperty("age"));
        System.out.println(prop.getProperty("telephone"));

    } catch (IOException ex) {
        ex.printStackTrace();
    }

这可以帮助您或您真正想做什么吗?

我认为对于你的方法,数据库风格的东西会更好。