Module  java.desktop
软件包  javax.imageio.stream

Class ImageOutputStreamImpl

    • 构造方法详细信息

      • ImageOutputStreamImpl

        public ImageOutputStreamImpl​()
        构造一个 ImageOutputStreamImpl
    • 方法详细信息

      • write

        public abstract void write​(int b)
                            throws IOException
        描述从接口ImageOutputStream复制
        将当前位置的单个字节写入流。 忽略了b的24个高位。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用flushBits的方法ImageOutputStreamImpl来保证这一点。

        Specified by:
        write在接口 DataOutput
        Specified by:
        write在接口 ImageOutputStream
        参数
        b - 要写入低8位的 int
        异常
        IOException - 如果发生I / O错误。
      • write

        public void write​(byte[] b)
                   throws IOException
        描述从接口ImageOutputStream复制
        在当前位置写入一串字节。 如果b.length为0, b.length写任何内容。 字节b[0]首先写入,然后字节b[1]等等。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        write在接口 DataOutput
        Specified by:
        write在接口 ImageOutputStream
        参数
        b - 要写入的 byte数组。
        异常
        IOException - 如果发生I / O错误。
      • write

        public abstract void write​(byte[] b,
                                   int off,
                                   int len)
                            throws IOException
        说明从界面ImageOutputStream复制
        在当前位置写入一串字节。 如果len为0,则不会写入。 字节b[off]首先写入,然后字节b[off + 1]等等。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。 实施者可以使用flushBits的方法ImageOutputStreamImpl来保证这一点。

        Specified by:
        write在接口 DataOutput
        Specified by:
        write在接口 ImageOutputStream
        参数
        b - 要写入的 byte的数组。
        off - 数据中的起始偏移量。
        len - bytelen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeBoolean

        public void writeBoolean​(boolean v)
                          throws IOException
        描述从接口ImageOutputStream复制
        向流中写入一个boolean值。 如果v为真,则写入值(byte)1 ; 如果v为假,则写入值(byte)0

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeBoolean在接口 DataOutput
        Specified by:
        writeBoolean在接口 ImageOutputStream
        参数
        v - boolean
        异常
        IOException - 如果发生I / O错误。
      • writeByte

        public void writeByte​(int v)
                       throws IOException
        描述从接口ImageOutputStream复制
        v的8位低位写入流。 v的24位v被忽略。 (这意味着writeByte与整数参数完全一样) write ))

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeByte在接口 DataOutput
        Specified by:
        writeByte在接口 ImageOutputStream
        参数
        v - 包含要写入的字节值的 int
        异常
        IOException - 如果发生I / O错误。
      • writeShort

        public void writeShort​(int v)
                        throws IOException
        描述从接口ImageOutputStream复制
        v字节的v位写入流。 v的16位v被忽略。 如果流使用网络字节顺序,则按顺序写入的字节为:
          (byte)((v >> 8) & 0xff)
         (byte)(v & 0xff) 
        否则写入的字节将为:
          (byte)(v & 0xff)
         (byte)((v >> 8) & 0xff) 

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeShort在接口 DataOutput
        Specified by:
        writeShort在接口 ImageOutputStream
        参数
        v - 一个 int其中包含要写入的短值。
        异常
        IOException - 如果发生I / O错误。
      • writeInt

        public void writeInt​(int v)
                      throws IOException
        描述从接口ImageOutputStream复制
        v的32位写入流。 如果流使用网络字节顺序,则按顺序写入的字节为:
          (byte)((v >> 24) & 0xff)
         (byte)((v >> 16) & 0xff)
         (byte)((v >> 8) & 0xff)
         (byte)(v & 0xff) 
        Otheriwse,写入的字节将是:
          (byte)(v & 0xff)
         (byte)((v >> 8) & 0xff)
         (byte)((v >> 16) & 0xff)
         (byte)((v >> 24) & 0xff) 

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeInt在接口 DataOutput
        Specified by:
        writeInt在接口 ImageOutputStream
        参数
        v - 一个包含要写入的值的 int
        异常
        IOException - 如果发生I / O错误。
      • writeLong

        public void writeLong​(long v)
                       throws IOException
        说明从界面ImageOutputStream复制
        v的64位写入流。 如果流使用网络字节顺序,则按顺序写入的字节为:
          (byte)((v >> 56) & 0xff)
         (byte)((v >> 48) & 0xff)
         (byte)((v >> 40) & 0xff)
         (byte)((v >> 32) & 0xff)
         (byte)((v >> 24) & 0xff)
         (byte)((v >> 16) & 0xff)
         (byte)((v >> 8) & 0xff)
         (byte)(v & 0xff) 
        否则写入的字节将为:
          (byte)(v & 0xff)
         (byte)((v >> 8) & 0xff)
         (byte)((v >> 16) & 0xff)
         (byte)((v >> 24) & 0xff)
         (byte)((v >> 32) & 0xff)
         (byte)((v >> 40) & 0xff)
         (byte)((v >> 48) & 0xff)
         (byte)((v >> 56) & 0xff) 

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeLong在接口 DataOutput
        Specified by:
        writeLong在接口 ImageOutputStream
        参数
        v - a long包含要写入的值。
        异常
        IOException - 如果发生I / O错误。
      • writeFloat

        public void writeFloat​(float v)
                        throws IOException
        说明从界面ImageOutputStream复制
        向输出流写入由四个字节组成的float值。 它这样做是因为,如果它首先将这个float值到int在完全相同的方式Float.floatToIntBits方法,然后在的完全相同的方式写入的int值writeInt方法。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeFloat在接口 DataOutput
        Specified by:
        writeFloat在接口 ImageOutputStream
        参数
        v - a float包含要写入的值。
        异常
        IOException - 如果发生I / O错误。
      • writeDouble

        public void writeDouble​(double v)
                         throws IOException
        说明从界面ImageOutputStream复制
        向输出流写入由四个字节组成的double值。 它这样做是因为,如果它首先将这个double值到long在完全相同的方式Double.doubleToLongBits方法,然后在完全相同的方式写入长值writeLong方法。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeDouble接口 DataOutput
        Specified by:
        writeDouble接口 ImageOutputStream
        参数
        v - 一个包含要写入的值的 double
        异常
        IOException - 如果发生I / O错误。
      • writeBytes

        public void writeBytes​(String s)
                        throws IOException
        描述从接口ImageOutputStream复制
        将一个字符串写入输出流。 对于字符串s中的每个字符,按顺序,一个字节被写入输出流。 如果snull ,则抛出NullPointerException

        如果s.length为零,则不会写入任何字节。 否则,首先写入字符s[0] ,然后写入s[1]等等; 写最后一个字符是s[s.length-1] 对于每个字符,写入一个字节,即低位字节,完全符合writeByte方法。 字符串中每个字符的高8位被忽略。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeBytes在接口 DataOutput
        Specified by:
        writeBytes在接口 ImageOutputStream
        参数
        s - a String包含要写入的值。
        异常
        IOException - 如果发生I / O错误。
      • writeChars

        public void writeChars​(String s)
                        throws IOException
        说明从界面ImageOutputStream复制
        将一个字符串写入输出流。 对于字符串s中的每个字符,按顺序,将两个字节写入输出流,根据当前字节顺序设置进行排序。 如果正在使用网络字节顺序,则首先写入高字节; 否则订单相反。 如果snull ,则抛出NullPointerException

        如果s.length为零,则不会写入任何字节。 否则,首先写入字符s[0] ,然后写入s[1] ,等等; 写最后一个字符是s[s.length-1]

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeChars在接口 DataOutput
        Specified by:
        writeChars在接口 ImageOutputStream
        参数
        s - a String包含要写入的值。
        异常
        IOException - 如果发生I / O错误。
      • writeUTF

        public void writeUTF​(String s)
                      throws IOException
        描述从接口ImageOutputStream复制
        以网络字节顺序将两个字节的长度信息写入输出流,后跟字符串s中每个字符的modified UTF-8表示。 如果snull ,则抛出NullPointerException 字符串s中的每个字符根据字符的值转换为一个,两个或三个字节的组。

        如果字符c\u0001\u007f ,则由一个字节表示:

          (byte)c 

        如果字符c\u0000或者是在\u0080\u07ff的范围内,那么它由两个字节表示,按照显示的顺序写:

           (byte)(0xc0 | (0x1f & (c >> 6))) (byte)(0x80 | (0x3f & c))  

        如果字符c\u0800uffff范围内, \u0800 3个字节表示,按照显示的顺序写入:

           (byte)(0xe0 | (0x0f & (c >> 12))) (byte)(0x80 | (0x3f & (c >> 6))) (byte)(0x80 | (0x3f & c))  

        首先计算代表s所有字符所需的总字节数。 如果这个数字大于65535 ,则抛出一个UTFDataFormatException 否则,该长度以writeShort的方式写入输出流; 之后,写入字符串s中每个字符的一个,两个或三个字节的表示。

        当前字节顺序设置被忽略。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        注意:此方法不应用于执行使用标准UTF-8的图像格式,因为此处使用的修改后的UTF-8与标准UTF-8不兼容。

        Specified by:
        writeUTF在接口 DataOutput
        Specified by:
        writeUTF接口 ImageOutputStream
        参数
        s - a String包含要写入的值。
        异常
        UTFDataFormatException -如果的改性UTF-8表示 s需要超过65536个字节。
        IOException - 如果发生I / O错误。
      • writeShorts

        public void writeShorts​(short[] s,
                                int off,
                                int len)
                         throws IOException
        描述从接口ImageOutputStream复制
        在当前位置写入流的序列。 如果len为0, len写任何内容。 s[off]先写,然后短s[off + 1] ,等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeShorts在接口 ImageOutputStream
        参数
        s - 要写入的 short的数组。
        off - 数据中的起始偏移量。
        len - shortlen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeChars

        public void writeChars​(char[] c,
                               int off,
                               int len)
                        throws IOException
        说明从界面ImageOutputStream复制
        在当前位置将一串字符写入流。 如果len为0, len写任何内容。 char c[off]是先写的,然后是char c[off + 1] ,等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeChars在接口 ImageOutputStream
        参数
        c - 要写入的 char数组。
        off - 数据中的起始偏移量。
        len - charlen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeInts

        public void writeInts​(int[] i,
                              int off,
                              int len)
                       throws IOException
        描述从接口ImageOutputStream复制
        在当前位置写入流的序列。 如果len为0, len写任何内容。 int i[off]先写,然后是int i[off + 1] ,等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeInts在接口 ImageOutputStream
        参数
        i - 要写入的 int的数组。
        off - 数据中的起始偏移量。
        len - intlen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeLongs

        public void writeLongs​(long[] l,
                               int off,
                               int len)
                        throws IOException
        描述从接口ImageOutputStream复制
        在当前位置写入流的序列。 如果len为0, len写任何内容。 l[off]是先写的,那么长l[off + 1] ,等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeLongs在接口 ImageOutputStream
        参数
        l - 要写入的 long的数组。
        off - 数据中的起始偏移量。
        len - longlen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeFloats

        public void writeFloats​(float[] f,
                                int off,
                                int len)
                         throws IOException
        描述从接口ImageOutputStream复制
        在当前位置将一系列浮点写入流。 如果len为0,则不会写入。 浮动f[off]先写,然后浮动f[off + 1]等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeFloats在接口 ImageOutputStream
        参数
        f - 要写入的 float的数组。
        off - 数据中的起始偏移量。
        len - floatlen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeDoubles

        public void writeDoubles​(double[] d,
                                 int off,
                                 int len)
                          throws IOException
        说明从接口ImageOutputStream复制
        将当前位置的一系列双精度写入流。 如果len为0,则不会写入。 d[off]先写,然后双d[off + 1] ,等等。 流的字节顺序用于确定写入单个字节的顺序。

        如果流内的位偏移量不为零,则当前字节的剩余部分用0填充并首先写出。 写入后位偏移将为0。

        Specified by:
        writeDoubles在接口 ImageOutputStream
        参数
        d - 要写入的 doubles的数组。
        off - 数据中的起始偏移量。
        len - doublelen的数量。
        异常
        IOException - 如果发生I / O错误。
      • writeBit

        public void writeBit​(int bit)
                      throws IOException
        说明从界面复制: ImageOutputStream
        将由参数的最低有效位给出的单个位写入当前字节位置中当前位偏移量的流。 参数的高31位被忽略。 给定位替换该位置上的前一位。 位偏移前进一并减少模8。

        如果特定字节的任何位在字节被刷新到目的地时从未被设置,则这些位将自动设置为0。

        Specified by:
        writeBit接口 ImageOutputStream
        参数
        bit - 其最低有效位 bitint
        异常
        IOException - 如果发生I / O错误。
      • writeBits

        public void writeBits​(long bits,
                              int numBits)
                       throws IOException
        说明从界面ImageOutputStream复制
        bits参数中的bits参数的从左到右顺序的numBits最低有效位给出的位序列写入当前字节位置当前位偏移量的流。 上限的64 - numBits位的参数被忽略。 位偏移提前numBits并减小模8。注意,0的位偏移总是表示字节的最高有效位,并且在遇到位时,位的字节顺序写出。 因此,位写入总是以网络字节顺序有效。 实际流字节顺序设置被忽略。

        位数据可以无限期累积到存储器中,直到flushBefore 那时候,闪存位置之前的所有位数据将被写入。

        如果特定字节的任何位在字节被刷新到目的地时从未被设置,则这些位将自动设置为0。

        Specified by:
        writeBits接口 ImageOutputStream
        参数
        bits -a long包含要写入的位,从位置 numBits - 1的位开始到最低有效位。
        numBits - 一个从0到64之间的 int (含)。
        异常
        IOException - 如果发生I / O错误。
      • flushBits

        protected final void flushBits​()
                                throws IOException
        如果位偏移量不为零,则强制当前字节中的剩余位为0,并将流位置提前一位。 该方法应该由write(int)write(byte[], int, int)方法开头的子类调用。
        异常
        IOException - 如果发生I / O错误。