用户:洞穴夜莺/EInputStream
< 用户:洞穴夜莺
这个用户就是洞穴夜莺
EInputStream.java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* You can read nothing but infinite 'e' from an EInputStream
* Example:
* new EInputStream().transferTo(stdout);
* @author CaveNightingale
*/
public class EInputStream extends InputStream {
private static final byte[] BUFFER = new byte[8192];
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) {
for(int i = 0; i < b.length; i++)
b[i] = (byte)'e';
return b.length;
}
@Override
public byte[] readAllBytes() {
throw new OutOfMemoryError("Endless");
}
@Override
public int read(byte[] b, int off, int len) {
for(int i = off; i < len + off; i++)
b[i] = (byte)'e';
return len;
}
@Override
public byte[] readNBytes(int len) {
byte[] rval = new byte[len];
read(rval);
return rval;
}
@Override
public int readNBytes(byte[] b, int off, int len) {
return read(b, off, len);
}
@Override
public long skip(long n) {
return n;
}
@Override
public long transferTo(OutputStream out) throws IOException {
while(true)
out.write(BUFFER);
}
}