它看起来像Properties.load()愉快地加载二进制垃圾,除非它发现一个无效的\uxxxx
转义字符。有没有更严格的方法?我只是看了the text format of properties files的文档,我很困惑如何判断.properties文件是否有效。Java文本属性文件:有什么方法可以测试合法性吗?
编辑:在那里我从这个未来:我想如果我指着我的应用程序10MB的二进制文件,它会拒绝它。 10MB文件确实被拒绝,但只是因为\uxxxx
字符。
我想我可以在输入流上创建一个过滤器来限制一些“理智”的数量,比如1MB,并且过滤掉键与可接受模式不匹配的任何键/值对。但我希望它可以有一些最小的结构来拒绝严重损坏的文件。
这是什么意思是“有效”(除了坏字符)?关于你所能做的就是检查它是否以一个有效的'foo ='(或注释)开头,对于所有非续行的行也是如此。 –
@DᴀᴠᴇNᴇᴡᴛᴏɴ:一行中的'foo'等同于将'foo'设置为空字符串。 – ninjalj
@ninjalj哦:(更难的是, –