package com.yoursway.utils.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
public class RandomAccessFileInputStream extends InputStream {
private final RandomAccessFile raf;
private final StreamCloseBehavior closeBehavior;
public RandomAccessFileInputStream(RandomAccessFile raf, StreamCloseBehavior closeBehavior) {
if (raf == null)
throw new NullPointerException("raf is null");
if (closeBehavior == null)
throw new NullPointerException("closeBehavior is null");
this.raf = raf;
this.closeBehavior = closeBehavior;
}
@Override
public int read() throws IOException {
return raf.read();
}
@Override
public int read(byte[] b, int off, int len) throws IOException {
return raf.read(b, off, len);
}
@Override
public void close() throws IOException {
closeBehavior.close(raf);
}
}