亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mutablepropertyset.java

?? java 報表 to office文檔: 本包由java語言開發
?? JAVA
字號:
/* ====================================================================   Copyright 2002-2004   Apache Software Foundation   Licensed under the Apache License, Version 2.0 (the "License");   you may not use this file except in compliance with the License.   You may obtain a copy of the License at       http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License.==================================================================== */        package org.apache.poi.hpsf;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.Iterator;import java.util.LinkedList;import java.util.ListIterator;import org.apache.poi.util.LittleEndian;import org.apache.poi.util.LittleEndianConsts;/** * <p>Adds writing support to the {@link PropertySet} class.</p> * * <p>Please be aware that this class' functionality will be merged into the * {@link PropertySet} class at a later time, so the API will change.</p> * * @author Rainer Klute <a * href="mailto:klute@rainer-klute.de">&lt;klute@rainer-klute.de&gt;</a> * @version $Id: MutablePropertySet.java,v 1.7 2004/08/31 20:47:09 klute Exp $ * @since 2003-02-19 */public class MutablePropertySet extends PropertySet{    /**     * <p>Constructs a <code>MutablePropertySet</code> instance. Its     * primary task is to initialize the immutable field with their proper     * values. It also sets fields that might change to reasonable defaults.</p>     */    public MutablePropertySet()    {        /* Initialize the "byteOrder" field. */        byteOrder = LittleEndian.getUShort(BYTE_ORDER_ASSERTION);        /* Initialize the "format" field. */        format = LittleEndian.getUShort(FORMAT_ASSERTION);        /* Initialize "osVersion" field as if the property has been created on         * a Win32 platform, whether this is the case or not. */        osVersion = (OS_WIN32 << 16) | 0x0A04;        /* Initailize the "classID" field. */        classID = new ClassID();        /* Initialize the sections. Since property set must have at least         * one section it is added right here. */        sections = new LinkedList();        sections.add(new MutableSection());    }    /**     * <p>Constructs a <code>MutablePropertySet</code> by doing a deep copy of     * an existing <code>PropertySet</code>. All nested elements, i.e.      * <code>Section</code>s and <code>Property</code> instances, will be their     * mutable counterparts in the new <code>MutablePropertySet</code>.</p>     *      * @param ps The property set to copy     */    public MutablePropertySet(final PropertySet ps)    {        byteOrder = ps.getByteOrder();        format = ps.getFormat();        osVersion = ps.getOSVersion();        setClassID(ps.getClassID());        clearSections();        for (final Iterator i = ps.getSections().iterator(); i.hasNext();)        {            final MutableSection s = new MutableSection((Section) (i.next()));            addSection(s);        }    }    /**     * <p>The length of the property set stream header.</p>     */    private final int OFFSET_HEADER =        BYTE_ORDER_ASSERTION.length + /* Byte order    */        FORMAT_ASSERTION.length +     /* Format        */        LittleEndianConsts.INT_SIZE + /* OS version    */        ClassID.LENGTH +              /* Class ID      */        LittleEndianConsts.INT_SIZE;  /* Section count */    /**     * <p>Sets the "byteOrder" property.</p>     *     * @param byteOrder the byteOrder value to set     */    public void setByteOrder(final int byteOrder)    {        this.byteOrder = byteOrder;    }    /**     * <p>Sets the "format" property.</p>     *     * @param format the format value to set     */    public void setFormat(final int format)    {        this.format = format;    }    /**     * <p>Sets the "osVersion" property.</p>     *     * @param osVersion the osVersion value to set     */    public void setOSVersion(final int osVersion)    {        this.osVersion = osVersion;    }    /**     * <p>Sets the property set stream's low-level "class ID"     * field.</p>     *     * @param classID The property set stream's low-level "class ID" field.     *     * @see #getClassID     */    public void setClassID(final ClassID classID)    {        this.classID = classID;    }    /**     * <p>Removes all sections from this property set.</p>     */    public void clearSections()    {        sections = null;    }    /**     * <p>Adds a section to this property set.</p>     *     * @param section The {@link Section} to add. It will be appended     * after any sections that are already present in the property set     * and thus become the last section.     */    public void addSection(final Section section)    {        if (sections == null)            sections = new LinkedList();        sections.add(section);    }    /**     * <p>Writes the property set to an output stream.</p>     *      * @param out the output stream to write the section to     * @exception IOException if an error when writing to the output stream     * occurs     * @exception WritingNotSupportedException if HPSF does not yet support     * writing a property's variant type.     */    public void write(final OutputStream out)        throws WritingNotSupportedException, IOException    {        /* Write the number of sections in this property set stream. */        final int nrSections = sections.size();        int length = 0;        /* Write the property set's header. */        length += TypeWriter.writeToStream(out, (short) getByteOrder());        length += TypeWriter.writeToStream(out, (short) getFormat());        length += TypeWriter.writeToStream(out, (int) getOSVersion());        length += TypeWriter.writeToStream(out, getClassID());        length += TypeWriter.writeToStream(out, (int) nrSections);        int offset = OFFSET_HEADER;        /* Write the section list, i.e. the references to the sections. Each         * entry in the section list consist of the section's class ID and the         * section's offset relative to the beginning of the stream. */        offset += nrSections * (ClassID.LENGTH + LittleEndian.INT_SIZE);        final int sectionsBegin = offset;        for (final ListIterator i = sections.listIterator(); i.hasNext();)        {            final MutableSection s = (MutableSection) i.next();            final ClassID formatID = s.getFormatID();            if (formatID == null)                throw new NoFormatIDException();            length += TypeWriter.writeToStream(out, s.getFormatID());            length += TypeWriter.writeUIntToStream(out, offset);            try            {                offset += s.getSize();            }            catch (HPSFRuntimeException ex)            {                final Throwable cause = ex.getReason();                if (cause instanceof UnsupportedEncodingException)                    throw new IllegalPropertySetDataException(cause);                else                    throw ex;            }        }        /* Write the sections themselves. */        offset = sectionsBegin;        for (final ListIterator i = sections.listIterator(); i.hasNext();)        {            final MutableSection s = (MutableSection) i.next();            offset += s.write(out);        }    }    /**     * <p>Returns the contents of this property set stream as an input stream.     * The latter can be used for example to write the property set into a POIFS     * document. The input stream represents a snapshot of the property set.     * If the latter is modified while the input stream is still being     * read, the modifications will not be reflected in the input stream but in     * the {@link MutablePropertySet} only.</p>     *     * @return the contents of this property set stream     *      * @throws WritingNotSupportedException if HPSF does not yet support writing     * of a property's variant type.     * @throws IOException if an I/O exception occurs.     */    public InputStream toInputStream()        throws IOException, WritingNotSupportedException    {        final ByteArrayOutputStream psStream = new ByteArrayOutputStream();        write(psStream);        psStream.close();        final byte[] streamData = psStream.toByteArray();        return new ByteArrayInputStream(streamData);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品婷婷| 欧美顶级少妇做爰| 中文字幕在线观看不卡视频| 成人高清免费在线播放| 亚洲免费在线电影| 91精品国产色综合久久久蜜香臀| 日韩av午夜在线观看| 2021久久国产精品不只是精品| 黑人精品欧美一区二区蜜桃| 国产精品美女久久久久aⅴ国产馆| 成人高清免费观看| 午夜一区二区三区视频| 欧美一级高清片| 国产精品996| 亚洲精品久久久久久国产精华液| 欧美伊人久久久久久久久影院| 午夜久久久久久久久久一区二区| 欧美一区二区福利视频| 丁香婷婷综合五月| 中文字幕在线不卡一区二区三区| 在线播放日韩导航| 国产在线看一区| 亚洲精品亚洲人成人网在线播放| 欧美日产国产精品| 激情久久五月天| 国产精品国产三级国产专播品爱网 | 日韩欧美成人激情| 国产精品456| 亚洲电影激情视频网站| 精品毛片乱码1区2区3区| 成人短视频下载| 五月天丁香久久| 国产日产欧产精品推荐色 | 亚洲福利视频三区| 337p日本欧洲亚洲大胆色噜噜| 99久久精品国产一区二区三区| 午夜免费欧美电影| 中文幕一区二区三区久久蜜桃| 欧美日韩国产首页在线观看| 国产成人免费在线观看| 亚洲电影一级片| 国产精品成人网| 欧美成人vps| 精品视频一区二区三区免费| 成人午夜伦理影院| 日韩av中文字幕一区二区| 综合婷婷亚洲小说| 久久久久久毛片| 欧美精品成人一区二区三区四区| 97se亚洲国产综合自在线| 九九热在线视频观看这里只有精品| ...av二区三区久久精品| 久久久久国色av免费看影院| 69av一区二区三区| 色香色香欲天天天影视综合网| 国产酒店精品激情| 偷拍亚洲欧洲综合| 亚洲理论在线观看| 国产精品久久久久久久久免费桃花 | 91浏览器入口在线观看| 国产不卡免费视频| 激情欧美一区二区三区在线观看| 三级不卡在线观看| 亚洲在线视频网站| 亚洲夂夂婷婷色拍ww47| 亚洲欧美一区二区三区孕妇| 国产精品免费视频观看| 国产精品热久久久久夜色精品三区| 日韩精品一区二区三区swag | 精品中文字幕一区二区| 天堂午夜影视日韩欧美一区二区| 亚洲午夜av在线| 亚洲精品美国一| 亚洲精品久久久久久国产精华液| 亚洲欧美另类图片小说| 国产精品二三区| 国产精品久久久久精k8| 国产精品丝袜黑色高跟| 中文字幕一区免费在线观看| 中文字幕精品一区二区精品绿巨人| 久久精品水蜜桃av综合天堂| 久久综合九色综合欧美就去吻 | 午夜亚洲福利老司机| 亚洲大尺度视频在线观看| 亚洲超碰精品一区二区| 日韩有码一区二区三区| 美女网站视频久久| 久久激情五月激情| 国产盗摄视频一区二区三区| 福利一区二区在线观看| 99久久精品情趣| 91老师片黄在线观看| 欧美色图天堂网| 欧美一区二区啪啪| 精品国产凹凸成av人网站| 精品国产制服丝袜高跟| 国产欧美精品一区二区色综合 | 日韩欧美不卡在线观看视频| 亚洲精品一区二区三区蜜桃下载 | 日韩福利视频网| 激情文学综合网| 成人精品鲁一区一区二区| 色屁屁一区二区| 欧美日韩久久一区| 日韩欧美中文字幕制服| 国产亚洲精品超碰| 亚洲人成网站色在线观看| 亚洲第一成年网| 国产一区二区不卡老阿姨| av中文一区二区三区| 欧美群妇大交群中文字幕| 欧美一级搡bbbb搡bbbb| 国产亲近乱来精品视频| 亚洲在线成人精品| 蜜臀av一区二区| 成人激情黄色小说| 欧美理论片在线| 久久精品视频一区| 亚洲一区二区黄色| 国产一区在线观看视频| 91福利资源站| 久久久国产午夜精品 | 91精品国产色综合久久不卡电影| 久久精品亚洲乱码伦伦中文| 亚洲二区在线视频| 福利电影一区二区| 51精品久久久久久久蜜臀| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品一品视频| 欧美色视频一区| 国产精品日韩精品欧美在线| 喷水一区二区三区| 色偷偷88欧美精品久久久| 精品国产麻豆免费人成网站| 一区二区三区久久久| 成人免费视频app| 欧美精品一二三| 亚洲欧美二区三区| 福利一区二区在线| 亚洲精品在线免费观看视频| 午夜影院在线观看欧美| 91网站黄www| 日本一区二区三区在线观看| 日韩 欧美一区二区三区| 色综合 综合色| 国产精品久久久久婷婷| 国产精品99久久久| 精品国产一区二区三区四区四| 婷婷夜色潮精品综合在线| 91免费看`日韩一区二区| 国产欧美日韩精品一区| 久久99最新地址| 日韩视频永久免费| 日韩精品久久理论片| 欧美性生交片4| 亚洲精品乱码久久久久久黑人 | 午夜不卡av免费| 欧美三级日韩三级国产三级| 亚洲精品乱码久久久久久久久| 成人激情动漫在线观看| 国产精品天干天干在观线| 国产精品亚洲一区二区三区妖精| 精品人在线二区三区| 美女一区二区三区在线观看| 在线91免费看| 水野朝阳av一区二区三区| 欧美专区在线观看一区| 亚洲一二三四在线观看| 欧美性三三影院| 天天影视涩香欲综合网| 欧美日本乱大交xxxxx| 亚洲18色成人| 欧美一区二区三区四区在线观看| 高清在线观看日韩| 亚洲欧美在线另类| 92精品国产成人观看免费| 亚洲激情六月丁香| 在线免费观看日本一区| 亚洲成av人片在线| 日韩一区二区免费高清| 国产一区二区三区四区五区入口| 国产欧美日韩卡一| 91视频一区二区| 亚洲成人免费看| 欧美一级精品在线| 国产精品99久久久久| 成人欧美一区二区三区在线播放| 色婷婷亚洲综合| 秋霞国产午夜精品免费视频| 久久毛片高清国产| 色综合久久久久| 日本伊人午夜精品| 国产女同互慰高潮91漫画| 一本一道久久a久久精品| 亚洲成va人在线观看| 精品99999| 日日骚欧美日韩| 久久女同精品一区二区| 国产乱人伦精品一区二区在线观看| 18欧美亚洲精品|