集合是否有java.util.Properties的等价物?
我想将文件中的行读入集合或列表。是否有一个标准的实用程序来执行此操作 如果这些行的形式为[key]=[value],我可以执行以下操作:集合是否有java.util.Properties的等价物?,java,collections,file-io,Java,Collections,File Io,我想将文件中的行读入集合或列表。是否有一个标准的实用程序来执行此操作 如果这些行的形式为[key]=[value],我可以执行以下操作: Properties properties = new Properties(); properties.load(new FileInputStream(file)); 这些值是单个条目,每行一个,每个值都成为集合/列表中的一个条目 我知道它可以通过LineReader、InputStreams和大量样板文件来实现,但我希望避免这种情况。是的,类本身为转换
Properties properties = new Properties();
properties.load(new FileInputStream(file));
这些值是单个条目,每行一个,每个值都成为集合/列表中的一个条目
我知道它可以通过LineReader、InputStreams和大量样板文件来实现,但我希望避免这种情况。是的,类本身为转换提供了访问器方法:
公共集入口集()
返回此映射中包含的映射的键集视图。集合由映射支持,因此对映射的更改将反映在集合中,反之亦然。如果在对集合进行迭代时修改映射(除了通过迭代器自己的删除操作,或者通过迭代器返回的映射项上的setValue操作),则迭代的结果是未定义的。该集合支持元素移除,即通过Iterator.remove、set.remove、removeAll、retainal和clear操作从映射中移除相应的映射。它不支持添加或添加所有操作
公共设置键集()
返回此映射中包含的键的键集视图。集合由映射支持,因此对映射的更改将反映在集合中,反之亦然。如果在对集合进行迭代时修改映射(通过迭代器自己的移除操作除外),则迭代的结果是未定义的。该集合支持元素移除,即通过Iterator.remove、set.remove、removeAll、retainal和clear操作从映射中移除相应的映射。它不支持添加或添加所有操作
或者,您可以使用元素()枚举属性。如果按照标准实用程序,您指的是第三方库,那么我的答案是:几乎 apachecommons值得成为几乎所有Java应用程序的一部分。使用Apache Commons中的IOUtils,您可以通过执行以下操作来实现所描述的目标:
final List list = IOUtils.readLines(new FileInputStream(file));
Set<String> set = new HashSet<String>(list);
final List List=IOUtils.readLines(新文件输入流(file));
Set Set=新哈希集(列表);
集合将包含文件中的每一行
注意:IOUtils不支持泛型,因此此代码片段将给出编译警告。谢谢,我假设它会失败,因为该值为null,它似乎使条目成为带有“=”后缀的键。在您的答案上有一条注释,看起来泛型被解释为html。编辑我上面的注释,值是空字符串,因此条目的toString()变成了[key]=“”不确定为什么被否决,对我来说似乎是一个合理的答案。这种方法的优点是,您有一个不受地图支持的集合。缺点是它不会忽略文件中的注释等,因此您需要自己处理它们或确保没有注释。