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

📄 bufferedencoder.java

📁 说明: 1、里面有什么: 1.1、org.bouncycastle.*下的所有软件是bouncycastle组织开发的软件包 1.2、org.infosecurity.*下的软件包括
💻 JAVA
字号:
package org.bouncycastle.util.encoders;import java.lang.IllegalStateException;/** * a buffering class to allow translation from one format to another to * be done in discrete chunks. */public class BufferedEncoder{	protected byte[]        buf;	protected int           bufOff;    protected Translator    translator;    /**     * @param translator the translator to use.     * @param bufSize amount of input to buffer for each chunk.     */	public BufferedEncoder(        Translator  translator,        int         bufSize)	{        this.translator = translator;        if ((bufSize % translator.getEncodedBlockSize()) != 0)        {            throw new IllegalArgumentException("buffer size not multiple of input block size");        }        buf = new byte[bufSize];        bufOff = 0;	}	public int processByte(        byte        in,		byte[]      out,		int         outOff)    {        int         resultLen = 0;        buf[bufOff++] = in;        if (bufOff == buf.length)        {            resultLen = translator.encode(buf, 0, buf.length, out, outOff);            bufOff = 0;        }        return resultLen;    }	public int processBytes(		byte[]      in,		int         inOff,		int         len,		byte[]      out,		int         outOff)	{        if (len < 0)        {            throw new IllegalArgumentException("Can't have a negative input length!");        }		int resultLen = 0;        int gapLen = buf.length - bufOff;        if (len > gapLen)        {            System.arraycopy(in, inOff, buf, bufOff, gapLen);            resultLen += translator.encode(buf, 0, buf.length, out, outOff);            bufOff = 0;            len -= gapLen;            inOff += gapLen;            outOff += resultLen;            int chunkSize = len - (len % buf.length);            resultLen += translator.encode(in, inOff, chunkSize, out, outOff);            len -= chunkSize;            inOff += chunkSize;        }        if (len != 0)        {            System.arraycopy(in, inOff, buf, bufOff, len);            bufOff += len;        }        return resultLen;	}}

⌨️ 快捷键说明

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