使用Java将大于2GB的文件读入内存
发布时间:2020-05-24 23:30:16 所属栏目:Java 来源:互联网
导读:由于ByteArrayInputStream限制为2GB,是否有任何替代解决方案允许我将2.3GB(可能更大)文件的全部内容存储到一个由Stax2读取的InputStream中? 当前代码: XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamRe
|
由于ByteArrayInputStream限制为2GB,是否有任何替代解决方案允许我将2.3GB(可能更大)文件的全部内容存储到一个由Stax2读取的InputStream中? 当前代码: 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();
}
对于性能调优,变量in不得来自磁盘.我有很多RAM. 解决方法使用NIO将文件读入一个巨大的ByteBuffer,然后创建一个读取ByteBuffer的流类.在开源中有几个这样的浮动.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
