Ponieważ ByteArrayInputStream
jest ograniczone do 2 GB, czy istnieje alternatywne rozwiązanie, które pozwala mi przechowywać całą zawartość pliku o wielkości 2,3 GB (i możliwie większego) w pliku InputStream
, do odczytu przez Stax2?Czytanie pliku większego niż 2 GB w pamięci w Javie
Aktualny kod:
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();
}
Dla tuningu, zmienna in
nie musi pochodzić z dysku. Posiadam plenties pamięci RAM.
W .NET ten sam problem istnieje i istnieje kilka rozwiązań. Spójrz na [to] (http://blogs.msdn.com/b/joshwil/archive/2005/08/10/450202.aspx) – ikh
Możliwe jest dzielenie na kilka załączników (kilka plików)? –