【问题标题】:How to read byte array as a property from a Properties file如何从属性文件中读取字节数组作为属性
【发布时间】:2017-06-29 15:51:57
【问题描述】:
假设我有一个名为 features.properties 的属性文件,其中一些属性以字节数组格式加密。
例如颜色 = [64, 14, 76, 92, 5, 114, 54, 31]
我想在java中读取这个属性值。
如果我使用properties.getProperty("color"),因为getProperty() 的return type 是String,它会返回一个地址,我认为它是字节数组的基地址。
我应该使用FileInputStream 来阅读它,但不知道如何使用它。请帮忙!
【问题讨论】:
标签:
java
arrays
file-io
properties-file
【解决方案1】:
它的一些属性以字节数组格式加密
我怀疑您在这里实际上并不是指“加密”。您只是将字节表示为文本 - 我没有看到任何加密。如果它们真的也被加密了,那么你需要采取一个单独的步骤。
它返回一个地址,我认为它是字节数组的基地址
不,它会将值作为字符串返回给您,例如“[64, 14, 76, 92, 5, 114, 54, 31]”。据我所知,属性文件不直接支持二进制数据。
最简单的方法是将格式更改为仅使用 base64 编码或十六进制的字符串。有很多选项可以将 base64/hex 数据从文本转换为二进制。 (在 Stack Overflow 上搜索关于此的问题。)
如果您不能更改格式,那么您需要删除前导方括号和尾随方括号,用逗号分隔结果,修剪每个单独的部分(“64”等)和然后解析它,例如与Byte.parseByte。