由于要处理的文件大小(50-100MB xml文件),这可能超出了Java VM的功能
现在我有一组作为拉链发送的xml文件,然后全部解压缩,然后使用SAX一次处理一个目录中的所有XML.
为了节省时间和空间(因为压缩大约是1:10),我想知道是否有办法将作为xml文件的ZipFileEntry传递给SAX处理程序.
我已经看到它使用DocumentBuilder和其他xml解析方法完成,但是对于性能(尤其是内存),我坚持使用SAX.
目前我正在以下列方式使用SAX
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
MyHandler handler = new MyHandler();
for( String curFile : xmlFiles )
{
System.out.println( "\n\n\t>>>>> open " + curFile + " <<<<<\n");
saxParser.parse( "file://" + new File( dirToProcess + curFile ).getAbsolutePath(), handler );
}
Run Code Online (Sandbox Code Playgroud) 我有一个罐子或战争.
我是programmaticaly读取这个jar,当我在这个jar里面找到jar时,我想编程再次阅读它.
但是JarFile只提供了getInputStream,我无法将其传递给JarFile(文件文件)构造函数.
如何从jar读取jar?
编辑:我正在考虑从类加载器或类似的方式获取文件.