Parsing 如何重用j2me kxml解析器?

Parsing 如何重用j2me kxml解析器?,parsing,java-me,xml-parsing,kxml,Parsing,Java Me,Xml Parsing,Kxml,我正在为我的j2me应用程序使用kxml解析器。我正在从手机内存中读取该文件,并解析xml文件以显示数据(具有不同级别的过滤器)。在每个过滤器上,我需要从这个文件中读取数据。这是我第一次创建解析器,每次我都将这个解析器1(引用原件)重新分配给paerser2(用于解析数据)。第一次我得到了正确的答案,但第二次我没有得到文件内容,它显示为null数据 这是我的密码: FileConnection fc = (FileConnection)Connector.open(rmsObj.rmsData.

我正在为我的j2me应用程序使用kxml解析器。我正在从手机内存中读取该文件,并解析xml文件以显示数据(具有不同级别的过滤器)。在每个过滤器上,我需要从这个文件中读取数据。这是我第一次创建解析器,每次我都将这个解析器1(引用原件)重新分配给paerser2(用于解析数据)。第一次我得到了正确的答案,但第二次我没有得到文件内容,它显示为null数据

这是我的密码:

FileConnection fc = (FileConnection)Connector.open(rmsObj.rmsData.elementAt(0).toString());
InputStream in = fc.openInputStream();
InputStreamReader is = new InputStreamReader(in);
commonAppObj.externParser = new XmlParser(is);
commonAppObj类文件

protected void fileread() {
    try {
        if(externParser != null){
            parser = externParser;
            fileparser(parser);
        }else{
            InputStream in = this.getClass().getResourceAsStream(this.dataBase);
            InputStreamReader is = new InputStreamReader(in);
            parser = new XmlParser(is);
            fileparser(parser);
        }
    } catch (IOException ioe) {
    } finally {
        parser = null;
    }
}

private void fileparser(XmlParser parser){
    try {
        ParseEvent event = null;
        dataflag = 0;
        dataflagS = 0;
        System.out.println("findtags = " + findtags);
        while (((event = parser.read()).getType() != Xml.END_DOCUMENT) && (dataflag != 1)) {
            if (event.getType() == Xml.START_TAG) {
                String name = event.getName();
                if (name != null && name.equals(findtags)) {
                    dataflag = 0;
                    parseAddressTag(parser);
                }
                name = null;
            }
            event = null;
        }
    } catch (IOException ioe) {
    } finally {
        parser = null;
    }
}
}
如果在调用中返回true,可以在
fileparser
方法的末尾调用它,但首先需要在创建它之后立即调用它

if (in.markSupported()) {
  in.mark(in.available());
}

感谢您的回复,但当我尝试此操作时,出现以下错误java.io.IOException:重置为无效标记谢谢您的回答Telmo Pimentel Mota先生。我已经完成了这项任务。我对代码所做的更改是“in.mark(fc.filesize())”,重置现在可以正常工作了。很高兴知道它工作了。如果我的回答对你有帮助,请将其标记为正确。:)