2017-06-17 50 views
0

我写了这个简单的代码,但我不明白为什么它不断返回我的错误, 你能帮我吗?如何接受输入并在java中显示mxml文件

{ 
/*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) 
+0

有什么错误? – Reimeus

+0

哪个'parse'是你得到这个错误的地方?第二个,对吧? – Azeem

回答

0

因为流已经由先前的方法调用所消耗的第二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建设作为流应关闭,以避免泄漏。

相关问题