0

というプロパティファイルがありますperson.properties。複数の person エントリを追加する必要があります。person エントリには , Name,Ageが含まれTelephoneます。このプロパティ ファイルには多くの 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プロパティファイルに同じものを持っているからです。したがって、どうすればこれを達成できますか?

4

3 に答える 3

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();
}
于 2012-12-05T16:26:53.090 に答える
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 つの無料のものを次に示します。そのようにファイルを編集することは可能ですが、データベースを使用して編集する方がはるかに簡単です。それが設計の目的です。

于 2012-12-05T16:27:07.457 に答える
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();
    }

これはあなた、またはあなたが実際にやりたいことに役立ちますか?

あなたのアプローチには、データベーススタイルの方が良いと思います。

于 2012-12-05T16:26:51.650 に答える