用户:洞穴夜莺/EInputStream:修订间差异

添加1,473字节 、​ 2020年8月29日 (星期六)
无编辑摘要
(创建页面,内容为“此用户即洞穴夜莺”)
 
无编辑摘要
第1行: 第1行:
此用户即[[洞穴夜莺]]
这个用户就是[[洞穴夜莺]]
{{eee}}
 
<pre>
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
/**
* You can read nothing but infinite 'e' from an EInputStream
* @author CaveNightingale
*/
public class EInputStream extends InputStream {
    private static final byte[] BUFFER = new byte[2048];
    static {
        for(int i = 0; i < BUFFER.length; i++)
            BUFFER[i] = (byte)'e';
    }
 
    @Override
    public int read(){
        return 'e';
    }
 
    @Override
    public int read(byte[] b) throws IOException {
        for(int i = 0; i < b.length; i++)
            b[i] = (byte)'e';
        return b.length;
    }
 
    @Override
    public byte[] readAllBytes() throws IOException {
        throw new OutOfMemoryError("Endless");
    }
 
    @Override
    public int read(byte[] b, int off, int len) throws IOException {
        for(int i = off; i < len + off; i++)
            b[i] = (byte)'e';
        return len;
    }
 
    @Override
    public byte[] readNBytes(int len) throws IOException {
        byte[] rval = new byte[len];
        read(rval);
        return rval;
    }
 
    @Override
    public int readNBytes(byte[] b, int off, int len) throws IOException {
        return read(b, off, len);
    }
 
    @Override
    public long skip(long n) throws IOException {
        return n;
    }
 
    @Override
    public long transferTo(OutputStream out) throws IOException {
        while(true)
            out.write(BUFFER);
    }
}</pre>
833

个编辑