1 21 22 package org.apache.derby.impl.store.raw.data; 23 24 import java.io.InputStream ; 25 import java.io.IOException ; 26 27 public abstract class BufferedByteHolderInputStream 28 extends ByteHolderInputStream 29 { 30 public BufferedByteHolderInputStream(ByteHolder bh) { 31 super(bh); 32 } 33 34 public abstract void fillByteHolder() throws IOException ; 35 36 public int read() throws IOException 37 { 38 fillByteHolder(); 39 return super.read(); 40 } 41 42 public int read(byte b[], int off, int len) 43 throws IOException 44 { 45 fillByteHolder(); 46 return super.read(b,off,len); 47 } 48 49 public long skip(long count) throws IOException 50 { 51 int bytesSkipped = 0; 52 while (bytesSkipped < count) { 53 fillByteHolder(); 54 bytesSkipped += super.skip(count - bytesSkipped); 55 } 56 return bytesSkipped; 57 } 58 59 public int available() throws IOException 60 { 61 fillByteHolder(); 62 return super.available(); 63 } 64 } 65 | Popular Tags |