我有一个名为person.properties
的属性文件。我需要添加几个人的条目。
人员条目将包含Name
,Age
,Telephone
。此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
。因此,我怎样才能做到这一点?
答案 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.
如果要修改密钥并将其写回到相同位置,则应使用数据库。以下是两个免费的:MySQL和SQLite。以这种方式编辑文件是可能的,但是使用数据库更容易实现它,这就是它的设计目标。
答案 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();
}
的
这可以帮助您或您真正想做什么吗?
我认为对于你的方法,数据库风格的东西会更好。