如何接受输入并在 java 中显示 mxml 文件

How to take in input and show an mxml file in java

我写了这个简单的代码,但我不明白为什么它总是返回错误, 你能帮帮我吗?

{
/*XesXmlParser parser = new XesXmlParser();*/
XMxmlParser parser = new XMxmlParser();
InputStream is = null;

try {
    is = new FileInputStream("C:\Users\examplefolder\prova1.mxml");
    parser.parse(is);
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
java.util.List<XLog> list = parser.parse(is);
System.out.println(list);


}

它给我这个错误:

{Exception in thread "main" java.io.IOException: Stream Closed
...
at org.deckfour.xes.in.XMxmlParser.parse(XMxmlParser.java:196)
at provaletturalog.LeggiLog.main(LeggiLog.java:26)

第二个 parser.parse(is) 调用导致错误,因为流已被前一个方法调用消耗。

所以你需要这样的东西:

XMxmlParser parser = new XMxmlParser();
List<XLog> list = Collections.emptyList();
try (InputStream is = new FileInputStream("C:\Users\examplefolder\prova1.mxml")) {
    list = parser.parse(is);
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

System.out.println(list);

我使用了 try with resources 构造,因为应该关闭流以避免泄漏。