⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staxdriver.java

📁 xstream是一个把java object序列化成xml文件的开源库,轻便好用
💻 JAVA
字号:
package com.thoughtworks.xstream.io.xml;import com.thoughtworks.xstream.io.HierarchicalStreamDriver;import com.thoughtworks.xstream.io.HierarchicalStreamReader;import com.thoughtworks.xstream.io.HierarchicalStreamWriter;import com.thoughtworks.xstream.io.StreamException;import javax.xml.stream.*;import java.io.InputStream;import java.io.OutputStream;import java.io.Reader;import java.io.Writer;/** * A driver using the StAX API * * @author James Strachan * @version $Revision: 605 $ */public class StaxDriver implements HierarchicalStreamDriver {    private static boolean libraryPresent;    private QNameMap qnameMap;    private XMLInputFactory inputFactory;    private XMLOutputFactory outputFactory;    private boolean repairingNamespace = false;    public StaxDriver() {        this.qnameMap = new QNameMap();    }    public StaxDriver(QNameMap qnameMap) {        this.qnameMap = qnameMap;    }    public StaxDriver(QNameMap qnameMap, boolean repairingNamespace) {        this.qnameMap = qnameMap;        this.repairingNamespace = repairingNamespace;    }    public HierarchicalStreamReader createReader(Reader xml) {        loadLibrary();        try {            return new StaxReader(qnameMap, createParser(xml));        }        catch (XMLStreamException e) {            throw new StreamException(e);        }    }    public HierarchicalStreamReader createReader(InputStream in) {        loadLibrary();        try {            return new StaxReader(qnameMap, createParser(in));        }        catch (XMLStreamException e) {            throw new StreamException(e);        }    }    private void loadLibrary() {        if (!libraryPresent) {            try {                Class.forName("javax.xml.stream.XMLStreamReader");            }            catch (ClassNotFoundException e) {                throw new IllegalArgumentException("StAX API is not present. Specify another driver." +                        " For example: new XStream(new DomDriver())");            }            libraryPresent = true;        }    }    public HierarchicalStreamWriter createWriter(Writer out) {        try {            return new StaxWriter(qnameMap, getOutputFactory().createXMLStreamWriter(out), true, isRepairingNamespace());        }        catch (XMLStreamException e) {            throw new StreamException(e);        }    }    public HierarchicalStreamWriter createWriter(OutputStream out) {        try {            return new StaxWriter(qnameMap, getOutputFactory().createXMLStreamWriter(out), true, isRepairingNamespace());        }        catch (XMLStreamException e) {            throw new StreamException(e);        }    }    public AbstractPullReader createStaxReader(XMLStreamReader in) {        return new StaxReader(qnameMap, in);    }    public StaxWriter createStaxWriter(XMLStreamWriter out, boolean writeStartEndDocument) throws XMLStreamException {        return new StaxWriter(qnameMap, out, writeStartEndDocument, repairingNamespace);    }    public StaxWriter createStaxWriter(XMLStreamWriter out) throws XMLStreamException {        return createStaxWriter(out, true);    }    // Properties    //-------------------------------------------------------------------------    public QNameMap getQnameMap() {        return qnameMap;    }    public void setQnameMap(QNameMap qnameMap) {        this.qnameMap = qnameMap;    }    public XMLInputFactory getInputFactory() {        if (inputFactory == null) {            inputFactory = XMLInputFactory.newInstance();        }        return inputFactory;    }    public XMLOutputFactory getOutputFactory() {        if (outputFactory == null) {            outputFactory = XMLOutputFactory.newInstance();            outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", isRepairingNamespace() ? Boolean.TRUE : Boolean.FALSE);        }        return outputFactory;    }    public boolean isRepairingNamespace() {        return repairingNamespace;    }    // Implementation methods    //-------------------------------------------------------------------------    protected XMLStreamReader createParser(Reader xml) throws XMLStreamException {        return getInputFactory().createXMLStreamReader(xml);    }    protected XMLStreamReader createParser(InputStream xml) throws XMLStreamException {        return getInputFactory().createXMLStreamReader(xml);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -