BoundedInputStream.java

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

  18. import java.io.InputStream;

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

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

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

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