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;
-	}
-
 }