@Override public int read() throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int val = in.read(); if (val > -1) { bytesRead++; } return val; }
@Override public int read(byte[] b, int off, int len) throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int maxToRead = (int) Math.min(len, limit - bytesRead); final int val = in.read(b, off, maxToRead); if (val > 0) { bytesRead += val; } return val; }
@Override public int read(final byte[] b) throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int maxToRead = (int) Math.min(b.length, limit - bytesRead); final int val = in.read(b, 0, maxToRead); if (val > 0) { bytesRead += val; } return val; }
@Override public int read() throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int val = in.read(); if (val > -1) { bytesRead++; } return val; }
@Override public int read(byte[] b, int off, int len) throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int maxToRead = (int) Math.min(len, limit - bytesRead); final int val = in.read(b, off, maxToRead); if (val > 0) { bytesRead += val; } return val; }
@Override public int read(final byte[] b) throws IOException { if (bytesRead >= limit) { return markLimitReached(); } final int maxToRead = (int) Math.min(b.length, limit - bytesRead); final int val = in.read(b, 0, maxToRead); if (val > 0) { bytesRead += val; } return val; }