indefinitelengthinputstream.java

来自「J2ME加密算法的代码!里面包括常用的算法」· Java 代码 · 共 72 行

JAVA
72 行
字号
package org.bouncycastle.asn1;import java.io.IOException;import java.io.InputStream;class IndefiniteLengthInputStream    extends LimitedInputStream{    private int _b1;    private int _b2;    private boolean _eofReached = false;    private boolean _eofOn00 = true;    IndefiniteLengthInputStream(        InputStream in)        throws IOException    {        super(in);        _b1 = in.read();        _b2 = in.read();        _eofReached = (_b2 < 0);    }    void setEofOn00(        boolean eofOn00)    {        _eofOn00 = eofOn00;    }    void checkForEof()        throws IOException    {        if (_eofOn00 && (_b1 == 0x00 && _b2 == 0x00))        {            _eofReached = true;            setParentEofDetect(true);        }    }    public int read()        throws IOException    {        checkForEof();        if (_eofReached)        {            return -1;        }        int b = _in.read();        //        // strictly speaking we should return b1 and b2, but if this happens the stream        // is corrupted so we are already in trouble.        //        if (b < 0)        {            _eofReached = true;            return -1;        }        int v = _b1;        _b1 = _b2;        _b2 = b;        return v;    }}

⌨️ 快捷键说明

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