当前位置: 首页 > 知识库问答 >
问题:

如何按照定义的顺序编写Java属性?

周祺
2023-03-14

我正在使用java.util.Properties的store(Writer, String)方法来存储属性。在生成的文本文件中,属性以随机顺序存储。

这就是我正在做的事情:

Properties properties = createProperties();
properties.store(new FileWriter(file), null);

如何确保属性是按字母顺序写出的,还是按属性添加的顺序写出的?

我希望有一个比“手动创建属性文件”更简单的解决方案。

共有3个答案

贝滨海
2023-03-14

史蒂夫·麦克劳德的回答曾经对我有用,但从11Java开始,就不管用了。

问题似乎是入口集排序,所以,你来了:

@SuppressWarnings("serial")
private static Properties newOrderedProperties() 
{
    return new Properties() {
        @Override public synchronized Set<Map.Entry<Object, Object>> entrySet() {
            return Collections.synchronizedSet(
                    super.entrySet()
                    .stream()
                    .sorted(Comparator.comparing(e -> e.getKey().toString()))
                    .collect(Collectors.toCollection(LinkedHashSet::new)));
        }
    };
}

我要警告说,这绝不是很快。它迫使迭代链接的HashSet,这并不理想,但我对建议持开放态度。

濮阳浩穰
2023-03-14

有关允许以明确定义的顺序读取/写入属性文件的完整实现,请参阅https://github.com/etiennestuder/java-ordered-properties。

OrderedProperties properties = new OrderedProperties();
properties.load(new FileInputStream(new File("~/some.properties")));
鄢晔
2023-03-14

根据“新白痴”的建议,它按字母键顺序存储。

Properties tmp = new Properties() {
    @Override
    public synchronized Enumeration<Object> keys() {
        return Collections.enumeration(new TreeSet<Object>(super.keySet()));
    }
};
tmp.putAll(properties);
tmp.store(new FileWriter(file), null);
 类似资料:
  • 问题内容: 我正在使用java.util.Properties的store(Writer,String)方法来存储属性。在生成的文本文件中,属性以随机顺序存储。 这就是我在做什么: 如何确保按字母顺序或按添加属性的顺序写出属性? 我希望找到一种比“手动创建属性文件”更简单的解决方案。 问题答案: 根据“新白痴”的建议,此存储按字母顺序排列。

  • 已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {“bed”, “dog”, “dear”, “eye”},按照字母顺序排序并打印,结果应为:dear, dog, eye, bed。 说明 本问题在网上比较常见,但这里尝试用另外一个思路,并且用python来写,与众多用c++的有所不同,且似乎短小了不少。自己感觉比网上参考到的更

  • 我正在使用beam处理重叠窗口上的时间序列数据。在管道的末尾,我将每个元素写入一个文件。每个元素表示一个csv行,其中一个字段是关联窗口的时间戳。我想按照时间戳的顺序来编写元素。有没有一种方法可以使用python beam库来实现这一点?

  • 本文向大家介绍Java实现按照大小写字母顺序排序的方法,包括了Java实现按照大小写字母顺序排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现按照大小写字母顺序排序的方法。分享给大家供大家参考,具体如下: 这里排序需要得到的结果按字母顺序。如:a-----z... 运行结果: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Ja

  • 问题内容: 这是我需要做的。 我在Java中有一个列表,可以将其转换为逗号分隔的ID字符串,例如“ 3,4,5,6,1,2” 我想知道是否有办法将该字符串传递给oracle,并根据该字符串的排序顺序对sql代码进行排序? 所以这个查询: 将导致此顺序 问题答案: 如果可以在Java中修改查询,则可以执行以下操作: 您必须为列表中的每个元素在order by子句中放入一个解码。每次解码中的第二个参数

  • 问题内容: 我想为汽车清单开发一个排序演示。我正在使用数据表显示汽车列表。现在实际上我想按汽车颜色对列表进行排序。这里不是按字母顺序排序的。我想使用我的自定义排序顺序,例如先是红色汽车,然后是蓝色,等等。 为此,我尝试使用,但它只允许按字母顺序排序。 因此,任何人都可以指导我实现使用该技术的方法,以便使排序变得更快。 问题答案: 我建议你为汽车颜色创建一个枚举,而不要使用字符串,并且枚举的自然顺序