Mercurial Hosting > luan
diff src/goodjava/io/FixedLengthInputStream.java @ 1494:91c167099462
more io
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 03 May 2020 11:51:31 -0600 |
parents | 9a2a2181a58f |
children |
line wrap: on
line diff
--- a/src/goodjava/io/FixedLengthInputStream.java Sun May 03 00:12:15 2020 -0600 +++ b/src/goodjava/io/FixedLengthInputStream.java Sun May 03 11:51:31 2020 -0600 @@ -1,12 +1,11 @@ package goodjava.io; import java.io.InputStream; -import java.io.FilterInputStream; import java.io.IOException; import java.io.EOFException; -public class FixedLengthInputStream extends FilterInputStream { +public class FixedLengthInputStream extends NoMarkInputStream { protected long left; public FixedLengthInputStream(InputStream in, long len) { @@ -16,31 +15,31 @@ this.left = len; } - public synchronized int read() throws IOException { + public int read() throws IOException { if( left == 0 ) return -1; - int n = super.read(); + int n = in.read(); if( n == -1 ) throw new EOFException(); left--; return n; } - public synchronized int read(byte[] b, int off, int len) throws IOException { + 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 = super.read(b,off,len); + int n = in.read(b,off,len); if( n == -1 ) throw new EOFException(); left -= n; return n; } - public synchronized long skip(long n) throws IOException { + public long skip(long n) throws IOException { if( n > left ) n = left; n = in.skip(n); @@ -48,21 +47,11 @@ return n; } - public synchronized int available() throws IOException { + public int available() throws IOException { int n = in.available(); if( n > left ) n = (int)left; return n; } - public void mark(int readlimit) {} - - public void reset() throws IOException { - throw new IOException("not supported"); - } - - public boolean markSupported() { - return false; - } - }