我正在编写一个简单的解析器来将包含name=value
成对条目的 java 属性文件转换为json
字符串。下面是代码。该代码要求每个条目都在一个新行中:
sCurrentLine = br.readLine();
while ((sCurrentLine) != null)
{
config+=sCurrentLine.replace('=', ':');
sCurrentLine = br.readLine()
if(sCurrentLine!=null)
config+=",";
}
config+="}";
该函数工作正常,除非属性文件中有额外的空新行。(例如:假设我在 props 文件中写入最后一个条目,然后按两次输入,该文件将在最后一个条目之后包含两个空的新行)。虽然预期的输出是{name1:value1,name2:value2}
,但在上述情况下,当存在额外的新行时,我得到的输出为{name1:value1,name2:value2,}
. 尾随,
的数量随着空新行的数量而增加。
我知道它是因为readLine()
它在逻辑上不应该读取空行,但是我该如何更改呢?