public class CustomInputStream extends InputStream {
private InputStream inputStream;
public CustomInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
@Override
public int read() throws IOException {
// ...
return inputStream.read();
}
// ...
}
public class CustomInputStreamDecorator extends InputStream {
private InputStream inputStream;
public CustomInputStreamDecorator(InputStream inputStream) {
this.inputStream = inputStream;
}
@Override
public int read() throws IOException {
// ...
return inputStream.read();
}
// ...
}
public class CustomInputStreamFilter extends FilterInputStream {
public CustomInputStreamFilter(InputStream inputStream) {
super(inputStream);
}
@Override
public int read() throws IOException {
// ...
return super.read();
}
// ...
}
public class CustomBufferedReader extends BufferedReader {
public CustomBufferedReader(Reader reader) {
super(reader);
}
@Override
public String readLine() throws IOException {
// ...
return super.readLine();
}
// ...
}