看起来Properties.load()很高兴加载二进制垃圾,除非它找到无效的\uxxxx
转义字符。有没有办法更严格?我只是看了the text format of properties files的文档,我很困惑如何判断.properties文件是否有效。
编辑:我来自哪里:我想我是否将我的应用程序指向一个10MB的二进制文件,它会拒绝它。 10MB文件确实被拒绝了,但仅仅是因为\uxxxx
个字符。
我想我可以在输入流上创建一个过滤器,以限制一些“理智”的数量,如1MB,并过滤掉任何键/值对,其中键与可接受的模式不匹配。但我希望它可能有一些最小的结构来拒绝严重损坏的文件。
答案 0 :(得分:2)
属性文件应该是通用格式。应用程序负责确保每个属性都具有合理的价值。
答案 1 :(得分:1)
检查page。它说,如果输入流包含格式错误的Unicode转义序列,那么load方法会抛出IllegalArgumentException。