package org.amse.ys.zip;
import java.io.*;
public final class NoCompressionDecompressor extends Decompressor {
private final LocalFileHeader myHeader;
private final MyBufferedInputStream myStream;
private int myCurrentPosition;
public NoCompressionDecompressor(MyBufferedInputStream is, LocalFileHeader header) {
super();
myHeader = header;
myStream = is;
}
@Override
public int read(byte b[], int off, int len) throws IOException {
final int left = available();
if (left <= 0) {
return -1;
}
if (len > left) {
len = left;
}
final int r = myStream.read(b, off, len);
myCurrentPosition += r;
return r;
}
@Override
public int read() throws IOException {
if (myCurrentPosition < myHeader.CompressedSize) {
myCurrentPosition++;
return myStream.read();
} else {
return -1;
}
}
@Override
public int available() throws IOException {
return myHeader.UncompressedSize - myCurrentPosition;
}
}