BoundedInputStream.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *   https://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing,
  13.  * software distributed under the License is distributed on an
  14.  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15.  * KIND, either express or implied.  See the License for the
  16.  * specific language governing permissions and limitations
  17.  * under the License.
  18.  */
  19. package org.apache.commons.compress.utils;

  20. import java.io.InputStream;

  21. /**
  22.  * A stream that limits reading from a wrapped stream to a given number of bytes.
  23.  *
  24.  * @NotThreadSafe
  25.  * @since 1.6
  26.  * @deprecated Use {@link org.apache.commons.io.input.BoundedInputStream}.
  27.  */
  28. @Deprecated
  29. public class BoundedInputStream extends org.apache.commons.io.input.BoundedInputStream {

  30.     /**
  31.      * Creates the stream that will at most read the given amount of bytes from the given stream.
  32.      *
  33.      * @param in   the stream to read from
  34.      * @param size the maximum amount of bytes to read
  35.      */
  36.     public BoundedInputStream(final InputStream in, final long size) {
  37.         super(in, size);
  38.         setPropagateClose(false);
  39.     }

  40.     /**
  41.      * Gets how many bytes remain to read.
  42.      *
  43.      * @return bytes how many bytes remain to read.
  44.      * @since 1.21
  45.      */
  46.     public long getBytesRemaining() {
  47.         return getMaxCount() - getCount();
  48.     }

  49. //    @Override
  50. //    protected void onMaxLength(long maxLength, long count) throws IOException {
  51. //        if (count > maxLength) {
  52. //            throw new IOException("Can't read past EOF.");
  53. //        }
  54. //    }
  55. }