使用 Eclipse 3.7.2 Android 2.3.3 / API 级别 10
我在读取 XML 文件时遇到问题。我“认为”我可以使用此代码正确处理文件并将其打开以进行输入/输出,因为我想读取信息,为用户显示,然后更新任何更改。
来自 c# 世界,当我阅读文件时,我看到了我不熟悉的行为。在调试透视图中,我的变量具有红色方块值。现在这可能没问题,但我的第一个想法是红色 == 麻烦?但是数据(调试透视图的变量窗口中的数据)似乎没问题,所以我继续。我的 eventType 为零,我输入了 case 语句,但随后我抛出了一个异常。现在我在这里丢球。我不知道如何获取有关 Java 异常的更多信息。例如,在 c# 世界中,我可以获得内部异常。我确信在 Java 中有一种我还没有学过的方法。
以下是步骤: 从第 1 行,我直接跳到第 9 行。F6(Eclipse 调试快捷方式“Step over”)将我带到第 4 行,F6再次回到第 9 行,F6最后一次,我抓住了一个通用异常。
try
{
DataFileOut = new FileOutputStream(LiftFile);
DataFileIn = new FileInputStream(LiftFile);
InputStreamReader isr = new InputStreamReader(DataFileIn);
// auto-detect the encoding from the stream
parser.setInput(isr);
int eventType = parser.getEventType();
Category currentCategory = null;
boolean done = false;
while (eventType != XmlPullParser.END_DOCUMENT && !done)
{
String name = null;
0 //eventType = 2;
1 switch (eventType)
{
3 case XmlPullParser.START_DOCUMENT:
4 break;
case XmlPullParser.START_TAG:
....
}
9 eventType = parser.next();
}
}
所以我的想法是我的 FileInputStream 句柄不好,或者我的 XML 文档格式不正确?还有其他想法吗?
<?xml version="1.0" encoding="UTF-8"?>
<ExcersiseInformation>
<Lifts count="6">
<Lift>
<ID>1001001</ID>
<Name>Hammer Curls</Name>
<PreviousLift>45</PreviousLift>
<PreviousReps>8</PreviousReps>
<SuggestLift>45</SuggestLift>
<SuggestReps>10</SuggestReps>
<ActualLift></ActualLift>
<ActualReps></ActualReps>
</Lift>
.....
</Lifts>
</ExcersiseInformation>