gpt4 book ai didi

java - 如何识别给定文件或字符串是否为 Java Properties 文件格式?

转载 作者:行者123 更新时间:2023-11-29 03:39:42 29 4
gpt4 key购买 nike

如何识别给定内容(文件,StringInputStream)是否为 Java 属性 文件格式?

内容存储在数据库中,应解析为Properties 如果 它是一个属性文件。然而,通过一个简单的测试我注意到,java.util.Properties正确解析了 xml 文件 </log4j ).它也可以“解析”一个普通的文本文件。

所以,如果 java.util.Properties几乎可以解析所有文本,我如何识别我是否有属性文件?我需要检查这是否是任何其他可识别的格式,我可以使用一些启发式方法还是现有的库具有此类功能?

最佳答案

我会这样做

private boolean isProperties(Scanner sc) {
Pattern p = Pattern.compile("\\w.*[=:] *.+");
int nProps = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (!line.startsWith("#")) {
if (!p.matcher(line).matches()) {
sc.close();
return false;
}
nProps++;
}
}
sc.close();
return nProps > 0;
}

public boolean isProperties(String s) {
return isProperties(new Scanner(s));
}

public boolean isProperties(File f) throws FileNotFoundException {
return isProperties(new Scanner(f));
}

... more overloaded isProperties for different sources

这只是一个原型(prototype),正则表达式可能需要改进,请参阅 Properties.load API。我会忽略 xml 版本,但如果需要它会更简单,因为 API 中有 DTD

关于java - 如何识别给定文件或字符串是否为 Java Properties 文件格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744627/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com