任何人都可以告诉我如何阅读多行并存储它们的价值。
例如:file.txt的
Probable Cause: The network operator has issued an alter attribute command for
the specified LCONF assign. The old value and the new value are show
Action Taken : The assign value is changed from the old value to the new
value. Receipt of this message does not guarantee that the new attribute
value was accepted by clients who use it. Additional messages may be.
Probable Cause: The network operator has issued an info attribute command for
the specified LCONF assign. The default value being used is displaye
Action Taken : None. Informational use only.
在上面的文件中,可能的原因和操作采取的是数据库表的列。在可能的原因之后:那些是存储在数据库表中的可能原因列的值,同样采取了相应的行动。
那么我如何读取多行并存储它们的值?我必须阅读可能原因的值,直到行动采取行动。我正在使用BufferedReader
和readLine()
方法一次读取一行。所以任何人都可以告诉我如何直接从可能的原因到行动,无论他们之间有多少行。
答案 0 :(得分:1)
最简单的方法可能是为每个值保留List<String>
,使用 这样的循环
private static final String ACTION_TAKEN_PREFIX = "Action Taken ";
...
String line;
while ((line = reader.readLine()) != null)
{
if (line.startsWith(ACTION_TAKEN_PREFIX))
{
actions.add(line.substring(ACTION_TAKEN_PREFIX))
// Keep reading the rest of the actions
break;
}
causes.add(line);
}
// Now handle the fact that either we've reached the end of the file, or we're
// reading the actions
一旦你有一个“可能原因”/“采取行动”对,将字符串列表转换回单个字符串,例如加入“\ n”,然后插入数据库。 (Guava中的Joiner
课程将使这更容易。)
棘手的一点是处理异常现象:
我现在没有时间写出完整的解决方案,但希望以上内容有助于您前进。