解决方案 »
- 我刚接触java 该做些什么
- 关于IO的节点流和处理流的疑问
- 谁能解释 下这段代码。。。
- 准备换windows 2008 R2,只有64位版本的。有谁正在用64位系统的?
- 什么是多态?????
- 保存大图片时出错“java.lang.OutOfMemoryError: Java heap space” 高分求助!
- 请高手指点,如果hashmap不知道object key 如何得到hashmap里面的值?
- java applet中如何取得APPLET的长度和宽度,如何进行STRING到INT的转换,有没有像ASP那样可以直接转化的函数
- PrepareStatement的问题,哪位有空给我讲讲
- Jenkins报错问题
- java 字符串问题
- java图片裁剪问题
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;public class SaxHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
System.out.println("…………开始解析文档…………\n");
// super.startDocument();
}
@Override
public void endDocument() throws SAXException {
System.out.println("\n…………结束解析文档…………");
// super.endDocument();
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.println("开始解析元素 " + qName);
// super.startElement(uri, localName, qName, attributes);
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println("结束解析元素 " + qName);
// super.endElement(uri, localName, qName);
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String content = new String(ch, start, length);
// super.characters(ch, start, length);
}
}public class XmlTest { public static void main(String[] args) throws Exception{
//实例化SAXParserFactory对象
SAXParserFactory factory = SAXParserFactory.newInstance();
System.setProperty("entityExpansionLimit", "1000000");
//创建解析器
SAXParser parser = factory.newSAXParser();
SaxHandler dh = new SaxHandler();
FileInputStream file = new FileInputStream("dblp.xml");
BufferedInputStream bis = new BufferedInputStream(file,1024);
InputSource is = new InputSource(bis);
parser.parse(is, dh);
}}这是执行结果时候报的错:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at com.sun.org.apache.xerces.internal.util.XMLStringBuffer.append(XMLStringBuffer.java:205)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.refresh(XMLDocumentScannerImpl.java:1520)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.invokeListeners(XMLEntityScanner.java:2070)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1610)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1657)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1740)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at com.xml.test.XmlTest.main(XmlTest.java:25)
我在源代码中什么操作都没加,但是还是会内存溢出啊!