如果我有一个bufferedReader,它会从以下文本文件中读取行,如何让读者读取第一个ITEM的标记ITEM_TYPE,然后返回并读取标记CODE并继续读取所有其他标记(第一个项目)?
ITEM_LIST
{
ITEM
{
CODE ADLS443
ITEM_TYPE tv
MODEL IDL32KJX4300
MODEL_YEAR 2016
MANUFACTURER Samsung
PRICE 350
PANEL_TYPE LCD
DIMENSIONS 32
RESOLUTION "Full HD"
INTERFACES "HDMI USB SCART"
PIECES 43
}
ITEM
{
CODE KD444211
ITEM_TYPE tv
MODEL KDL49DDR4600
MODEL_YEAR 2014
MANUFACTURER Sony
PRICE 600
PANEL_TYPE LED
DIMENSIONS 49
RESOLUTION "Ultra HD"
INTERFACES "HDMI USB SCART Ethernet WiFi"
PIECES 8
}
答案 0 :(得分:1)
您可以为解析添加中间步骤。
这里不知道你的其余代码是如何解析你的数据的伪代码。
Map<String, String> values = new HashMap<>();
// For each key value pair in section
String key = // parse key name
String value = // parse key value
values.put(key, value);
String type = values.get("ITEM_TYPE");
if (type.equals("tv"))
TvObject tv = new TvObject(values);
}
修改强>
您不应该解析特定的键值,而是解析文件的格式。
ITEM
{
<key> <value>
<key> <value>
<key> <value>
}
以下是如何解析可以展开的INI文件的example。