Mercurial Hosting > luan
diff src/goodjava/rpc/FixedLengthInputStream.java @ 1490:9a2a2181a58f
FixedLengthInputStream
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 02 May 2020 20:42:28 -0600 |
parents | 27efb1fcbcb5 |
children | 491b355acef7 |
line wrap: on
line diff
--- a/src/goodjava/rpc/FixedLengthInputStream.java Sat May 02 16:28:24 2020 -0600 +++ b/src/goodjava/rpc/FixedLengthInputStream.java Sat May 02 20:42:28 2020 -0600 @@ -6,53 +6,10 @@ import java.io.EOFException; -public class FixedLengthInputStream extends FilterInputStream { - private long left; +final class FixedLengthInputStream extends goodjava.io.FixedLengthInputStream { public FixedLengthInputStream(InputStream in,long len) { - super(in); - if( len < 0 ) - throw new IllegalArgumentException("len can't be negative"); - this.left = len; - } - - public int read() throws IOException { - if( left == 0 ) - return -1; - int n = in.read(); - if( n == -1 ) - throw new EOFException(); - left--; - return n; - } - - public int read(byte b[], int off, int len) throws IOException { - if( len == 0 ) - return 0; - if( left == 0 ) - return -1; - if( len > left ) - len = (int)left; - int n = in.read(b, off, len); - if( n == -1 ) - throw new EOFException(); - left -= n; - return n; - } - - public long skip(long n) throws IOException { - if( n > left ) - n = left; - n = in.skip(n); - left -= n; - return n; - } - - public int available() throws IOException { - int n = in.available(); - if( n > left ) - n = (int)left; - return n; + super(in,len); } public void close() throws IOException { @@ -62,14 +19,4 @@ } } - public void mark(int readlimit) {} - - public void reset() throws IOException { - throw new IOException("not supported"); - } - - public boolean markSupported() { - return false; - } - }