@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Test public void testAvailable() throws IOException { InputStream is = new LengthLimitedInputStream(raw, 10); assertEquals(10, is.available()); is.skip(100); assertEquals(0, is.available()); }
@Test public void testRead() throws IOException { InputStream is = new LengthLimitedInputStream(raw, 10); byte[] x = new byte[12]; assertEquals(0, is.read()); assertEquals(9, is.read(x)); assertEquals(-1, is.read(x)); assertEquals(x[8], 9); } }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }
@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }
@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Override public int read(byte[] b) throws IOException { return read(b, 0, b.length); }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Override public int read(byte[] b, int off, int len) throws IOException { if (remaining == 0) { return -1; } if (len > remaining) { len = remainingInt(); } int v = super.read(b, off, len); if (v != -1) { remaining -= v; } return v; }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }
@Override public int available() throws IOException { return Math.min(super.available(), remainingInt()); }