我一直想知道为什么我需要一个Properties类,因为我总是可以创建一个HashMap并将键/值对保留在那里。可能是因为它减少了写入装载/存储属性文件的代码量。因为否则,我们必须创建BufferedReader并读取文件,然后拆分String和所有这些。但是,如果我们要从文件以外的来源获取键/值对,那么无论我们使用Properties类还是HashMap类,都可能没有任何区别。我只需要确认我的思维过程是否正确即可。
谢谢
Properties是一个类,自 Java 1.0 以来一直是 Java 的一部分......很早之前 Map就HashMap被引入了。事实上,您会看到它Properties扩展了旧的(遗留)Hashtable类,它是HashMap.
Properties系统属性对象在很大一部分 Java 应用程序中发挥着重要作用。如果不引入兼容性问题,就无法取代该角色。(即使引入第二个(双)属性机制的更改也会出现问题......因为某些代码会写入系统Properties对象。)
PropertiesHashMap具有一些未提供的重要功能;即能够以 2 种标准人类可读格式加载和保存属性。
可能会减少写入加载/存储属性文件的代码量。因为否则我们必须创建 BufferedReader 并读取文件并分割字符串等等。
是的。您会发现属性文件语法比使用split或 正则表达式解析更复杂。看看这里描述的语法:
但是,如果我们要从文件以外的源获取键/值对,那么无论我们使用 Properties 类还是 HashMap 类,可能都没有任何区别。
再说一遍,正确。对于该用例,HashMap甚至可能更优越。Properties/的大多数方法Hashtable都是同步的。如果您不需要同步,则会造成(较小的)性能损失。