Package org.h2.store

Class CountingReaderInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class CountingReaderInputStream
    extends java.io.InputStream
    An input stream that reads the data from a reader and limits the number of bytes that can be read.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.nio.ByteBuffer byteBuffer  
      private java.nio.CharBuffer charBuffer  
      private java.nio.charset.CharsetEncoder encoder  
      private long length  
      private java.io.Reader reader  
      private long remaining  
    • Constructor Summary

      Constructors 
      Constructor Description
      CountingReaderInputStream​(java.io.Reader reader, long maxLength)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      private boolean fetch()  
      private void fillBuffer()  
      long getLength()
      The number of characters read so far (but there might still be some bytes in the buffer).
      int read()  
      int read​(byte[] buff, int offset, int len)  
      • Methods inherited from class java.io.InputStream

        available, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • reader

        private final java.io.Reader reader
      • charBuffer

        private final java.nio.CharBuffer charBuffer
      • encoder

        private final java.nio.charset.CharsetEncoder encoder
      • byteBuffer

        private java.nio.ByteBuffer byteBuffer
      • length

        private long length
      • remaining

        private long remaining
    • Constructor Detail

      • CountingReaderInputStream

        public CountingReaderInputStream​(java.io.Reader reader,
                                         long maxLength)
    • Method Detail

      • read

        public int read​(byte[] buff,
                        int offset,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • fetch

        private boolean fetch()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • fillBuffer

        private void fillBuffer()
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • getLength

        public long getLength()
        The number of characters read so far (but there might still be some bytes in the buffer).
        Returns:
        the number of characters
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException