2016-03-29 23 views
0

我知道Java stax解析器可以和InputStreams一起使用。但是,我需要手动将大块字符串推送到解析器而不是输入流。如何向Java stax解析器提供大块字符串而不是InputStreams?

会有可能吗?

亲切的问候,

+0

如果API不提供接受字符串包裹字符串输入流的方法:我如何把字符串转换成在java中的流吗?](http://stackoverflow.com/q/247161/637853) – Thomas

+0

我需要不断地喂字符串。所以我需要只有一个xmlinputstream阅读器,当我有更多的字符串块时,我需要获取。 – adragomir

+0

在这种情况下,提供您自己的流实现,根据需要在它的'read()'方法中获取新块。 – Thomas

回答

0

您可以使用ByteArrayInputStream缠绕你的String块字节。

快速例如

XMLInputFactory factory = XMLInputFactory.newFactory(); 
XMLStreamReader reader = factory.createXMLStreamReader(
    new ByteArrayInputStream("<start></start>".getBytes("UTF-8")) 
); 
while (reader.hasNext()) { 
    int event = reader.next(); 
    switch (event) { 
    case (XMLStreamConstants.START_ELEMENT): { 
     System.out.println(reader.getLocalName()); 
     break; 
    } 
    } 
} 

输出

start 
+0

我需要不断地喂食弦乐。所以我需要只有一个xmlinputstream阅读器,当我有更多的字符串块时,我需要获取。 – adragomir