Class BufferedInputStream

All Implemented Interfaces:
PointerInterface
Direct Known Subclasses:
DataInputStream

public class BufferedInputStream extends FilterInputStream
Buffered input stream implements #GFilterInputStream and provides
for buffered reads.

By default, #GBufferedInputStream's buffer size is set at 4 kilobytes.

To create a buffered input stream, use g_buffered_input_stream_new(),
or g_buffered_input_stream_new_sized() to specify the buffer's size at
construction.

To get the size of a buffer within a buffered input stream, use
g_buffered_input_stream_get_buffer_size(). To change the size of a
buffered input stream's buffer, use
g_buffered_input_stream_set_buffer_size(). Note that the buffer's size
cannot be reduced below the size of the data within the buffer.

https://docs.gtk.org/gio/class.BufferedInputStream.html

  • Constructor Details

    • BufferedInputStream

      public BufferedInputStream(PointerContainer pointer)
    • BufferedInputStream

      public BufferedInputStream(@Nonnull InputStream base_stream)
      Creates a new #GInputStream from the given @base_stream, with
      a buffer set to the default size (4 kilobytes).
      Parameters:
      base_stream - a #GInputStream
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newSizedBufferedInputStream

      public static BufferedInputStream newSizedBufferedInputStream(@Nonnull InputStream base_stream, long size)
      Creates a new #GBufferedInputStream from the given @base_stream,
      with a buffer set to @size.
      Parameters:
      base_stream - a #GInputStream
      size - a #gsize
      Returns:
      a #GInputStream.
    • fill

      public long fill(long count, @Nullable Cancellable cancellable) throws AllocationError
      Tries to read @count bytes from the stream into the buffer.
      Will block during this read.

      If @count is zero, returns zero and does nothing. A value of @count
      larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.

      On success, the number of bytes read into the buffer is returned.
      It is not an error if this is not the same as the requested size, as it
      can happen e.g. near the end of a file. Zero is returned on end of file
      (or if @count is zero), but never otherwise.

      If @count is -1 then the attempted read size is equal to the number of
      bytes that are required to fill the buffer.

      If @cancellable is not %NULL, then the operation can be cancelled by
      triggering the cancellable object from another thread. If the operation
      was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
      operation was partially finished when the operation was cancelled the
      partial result will be returned, without an error.

      On error -1 is returned and @error is set accordingly.

      For the asynchronous, non-blocking, version of this function, see
      g_buffered_input_stream_fill_async().
      Parameters:
      count - the number of bytes that will be read from the stream
      cancellable - optional #GCancellable object, %NULL to ignore
      Returns:
      the number of bytes read into @stream's buffer, up to @count, or -1 on error.
      Throws:
      AllocationError
    • fillAsync

      public void fillAsync(long count, int io_priority, @Nullable Cancellable cancellable, BufferedInputStream.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Reads data into @stream's buffer asynchronously, up to @count size.
      @io_priority can be used to prioritize reads. For the synchronous
      version of this function, see g_buffered_input_stream_fill().

      If @count is -1 then the attempted read size is equal to the number
      of bytes that are required to fill the buffer.
      Parameters:
      count - the number of bytes that will be read from the stream
      io_priority - the [I/O priority][io-priority] of the request
      cancellable - optional #GCancellable object
      callback - a #GAsyncReadyCallback
      user_data - a #gpointer
    • fillFinish

      public long fillFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes an asynchronous read.
      Parameters:
      result - a #GAsyncResult
      Returns:
      a #gssize of the read stream, or `-1` on an error.
      Throws:
      AllocationError
    • getAvailable

      public long getAvailable()
      Gets the size of the available data within the stream.
      Returns:
      size of the available stream.
    • getBufferSize

      public long getBufferSize()
      Gets the size of the input buffer.
      Returns:
      the current buffer size.
    • peek

      public long peek(@Nonnull Pointer buffer, long offset, long count)
      Peeks in the buffer, copying data of size @count into @buffer,
      offset @offset bytes.
      Parameters:
      buffer - a pointer to an allocated chunk of memory
      offset - a #gsize
      count - a #gsize
      Returns:
      a #gsize of the number of bytes peeked, or -1 on error.
    • peekBuffer

      public Pointer peekBuffer(@Nonnull Int64 count)
      Returns the buffer with the currently available bytes. The returned
      buffer must not be modified and will become invalid when reading from
      the stream or filling the buffer.
      Parameters:
      count - a #gsize to get the number of bytes available in the buffer
      Returns:
      read-only buffer
    • readByte

      public int readByte(@Nullable Cancellable cancellable) throws AllocationError
      Tries to read a single byte from the stream or the buffer. Will block
      during this read.

      On success, the byte read from the stream is returned. On end of stream
      -1 is returned but it's not an exceptional error and @error is not set.

      If @cancellable is not %NULL, then the operation can be cancelled by
      triggering the cancellable object from another thread. If the operation
      was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
      operation was partially finished when the operation was cancelled the
      partial result will be returned, without an error.

      On error -1 is returned and @error is set accordingly.
      Parameters:
      cancellable - optional #GCancellable object, %NULL to ignore
      Returns:
      the byte read from the @stream, or -1 on end of stream or error.
      Throws:
      AllocationError
    • setBufferSize

      public void setBufferSize(long size)
      Sets the size of the internal buffer of @stream to @size, or to the
      size of the contents of the buffer. The buffer can never be resized
      smaller than its current contents.
      Parameters:
      size - a #gsize
    • asSeekable

      public Seekable asSeekable()
      Implements interface Seekable. Call this to get access to interface functions.
      Returns:
      Seekable
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()