Poiché ByteArrayInputStream
è limitato a 2 GB, esiste una soluzione alternativa che mi consente di archiviare l'intero contenuto di un file da 2,3 GB (e possibilmente più grande) in un InputStream
da leggere da Stax2?Lettura di un file più grande di 2 GB in Java
codice attuale:
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(in); //ByteArrayInputStream????
try
{
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = factory.newSchema(new StreamSource(schemaInputStream));
Validator validator = schema.newValidator();
validator.validate(new StAXSource(xmlStreamReader));
}
finally
{
xmlStreamReader.close();
}
Per l'ottimizzazione delle prestazioni, variabile in
non deve venire dal disco. Ho plenties di RAM.
In .net, esiste lo stesso problema e ci sono diverse soluzioni. Guarda [questo] (http://blogs.msdn.com/b/joshwil/archive/2005/08/10/450202.aspx) – ikh
Forse la suddivisione in più include (diversi file) è possibile? –