所以目前我正在XMLStreamReader
阅读我拥有的文件。在文件中有标签<Data> ... </Data>
。这些标签中包含大量的 Base64 编码数据。数据可以大到 20MB。我XMLStreamReader
用来到达这个 <Data>
标签,然后我想部分读取数据并将其写入另一个文件。我基本上是将<Data> ... </Data>
内容传输到另一个文件。如何从小部分获取数据XMLStreamReader
并将其写入另一个文件?是否可以XMLStreamReader
结合某种形式InputStream
和使用byte[]
舒适的尺寸?以下是我当前的代码
Public void readXML(File file){
XMLInputFactory inpFac = XMLInputFactory.newInstance();
FileInputStream fin = new FileInputStream(tmpFile)
XMLStreamReader reader = inpFac.createXMLStreamReader(inputStream);
While(reader.hasNext())
{
If(reader.isStartElement() && reader.getName().getLocalPart().equals("Data")){
File imgFile=new File("img.txt");
try(FileWriter fw = new FileWriter(imgFile);){
fw.write(reader.getElementText());//need to avoid this , can't get all data at once
writer.flush();
}
}
基本上,reader.getElementText()
我不想这样做,而是要小部分获取数据(也许通过使用 Byte []?)。是否可以将 XMLStreamReader 转换为 BufferedReader 并逐行读取?是否可以将 BufferedReader 包裹在 XMLStreamReader 周围?请让我知道如何使问题变得更好,因为我是新手