Klasse BufferedInputStream

Alle implementierten Schnittstellen:
PointerInterface
Bekannte direkte Unterklassen:
DataInputStream

public class BufferedInputStream extends FilterInputStream
Buffered input stream implements [class@Gio.FilterInputStream] and provides
for buffered reads.

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

To create a buffered input stream, use [ctor@Gio.BufferedInputStream.new],
or [ctor@Gio.BufferedInputStream.new_sized] to specify the buffer's size at
construction.

To get the size of a buffer within a buffered input stream, use
[method@Gio.BufferedInputStream.get_buffer_size]. To change the size of a
buffered input stream's buffer, use [method@Gio.BufferedInputStream.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

  • Konstruktordetails

    • BufferedInputStream

      public BufferedInputStream(PointerContainer pointer)
    • BufferedInputStream

      public BufferedInputStream(@Nonnull InputStream base_stream)
      Creates a new [class@Gio.InputStream] from the given @base_stream, with
      a buffer set to the default size (4 kilobytes).
      Parameter:
      base_stream - a [class@Gio.InputStream]
  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • newSizedBufferedInputStream

      public static BufferedInputStream newSizedBufferedInputStream(@Nonnull InputStream base_stream, long size)
      Creates a new [class@Gio.BufferedInputStream] from the given @base_stream,
      with a buffer set to @size.
      Parameter:
      base_stream - a [class@Gio.InputStream]
      size - a #gsize
      Gibt zurück:
      a [class@Gio.InputStream].
    • 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
      [error@Gio.IOErrorEnum.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 [error@Gio.IOErrorEnum.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
      [method@Gio.BufferedInputStream.fill_async].
      Parameter:
      count - the number of bytes that will be read from the stream
      cancellable - optional [class@Gio.Cancellable] object, `NULL` to ignore
      Gibt zurück:
      the number of bytes read into @stream's buffer, up to @count, or `-1` on error.
      Löst aus:
      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 [method@Gio.BufferedInputStream.fill].

      If @count is `-1` then the attempted read size is equal to the number
      of bytes that are required to fill the buffer.
      Parameter:
      count - the number of bytes that will be read from the stream
      io_priority - the [I/O priority](iface.AsyncResult.html#io-priority) of the request
      cancellable - optional [class@Gio.Cancellable] object
      callback - a [callback@Gio.AsyncReadyCallback]
      user_data - a #gpointer
    • fillFinish

      public long fillFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes an asynchronous read.
      Parameter:
      result - a [iface@Gio.AsyncResult]
      Gibt zurück:
      a #gssize of the read stream, or `-1` on an error.
      Löst aus:
      AllocationError
    • getAvailable

      public long getAvailable()
      Gets the size of the available data within the stream.
      Gibt zurück:
      size of the available stream.
    • getBufferSize

      public long getBufferSize()
      Gets the size of the input buffer.
      Gibt zurück:
      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.
      Parameter:
      buffer - a pointer to an allocated chunk of memory
      offset - a #gsize
      count - a #gsize
      Gibt zurück:
      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.
      Parameter:
      count - a #gsize to get the number of bytes available in the buffer
      Gibt zurück:
      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 [error@Gio.IOErrorEnum.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.
      Parameter:
      cancellable - optional [class@Gio.Cancellable] object, `NULL` to ignore
      Gibt zurück:
      the byte read from the @stream, or `-1` on end of stream or error.
      Löst aus:
      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.
      Parameter:
      size - a #gsize
    • asSeekable

      public Seekable asSeekable()
      Implements interface Seekable. Call this to get access to interface functions.
      Gibt zurück:
      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()