如何解决有时 Properties.load() 会跳过几行
Properties.load() 在以下情况下跳过 InputStream 的第二行。这是 Java 的错误还是正常行为?
public class PropTest {
public static void main(String[] args) throws Exception {
propTest("Test1","prop=cat,\\" + System.lineSeparator() + "dog");
propTest("Test2",\\ " + System.lineSeparator() + "dog");
}
public static void propTest(String name,String test) throws Exception {
ByteArrayInputStream stream = new ByteArrayInputStream(test.getBytes());
Properties properties = new Properties();
properties.load(stream);
System.out.println(properties.get("prop"));
}
}
运行此代码的结果如下:
猫,狗
猫,
解决方法
如果每行都以反斜杠 ('\') 字符结尾,则属性值可以跨越多行。
您在第二个版本中有一个尾随空格。所以这条线没有继续。请注意空格规则,这有点令人困惑。
属性名称和属性值之间出现的空格将被忽略,
和
行首的空白也被忽略。
这意味着行尾的空白不会被明确忽略。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。