Skip to content
FutureBlitz

    Install

    Import std.io.buffered

    BufferedReader

    std.io.buffered

    class

    Public Class BufferedReader Implements Reader

    Reads another Reader a buffer's bytes at a time, and gives them as they're asked for, a byte or a line at a time too.

    Examples

    Local reader = BufferedReader(StringReader("one\r\ntwo\nlast"))
    Expect((Try reader.ReadLine()) == "one")
    Expect((Try reader.ReadLine()) == "two")
    Expect((Try reader.ReadLine()) == "last")
    Expect((Try reader.ReadLine()) == Null)

    std/io/buffered.fb, line 24

    • @PanicsAtCaller Public New(inner: Reader, size: Int64 = 4096) constructor #

      Reads inner size bytes at a time. Panics when size is below 1.

    • Public Method Read(into: Buffer<UInt8>): Int64 Throws IOError method #

      As many as it has of what's next, or a read of the other Reader's. One for a whole buffer or more goes straight to the other Reader when it has none.

    • Public Async Method ReadAsync(into: Buffer<UInt8>): Int64 Throws IOError method #

      Read's Async twin: what it has of what's next, or what an Async read of the other Reader gives, while the main thread goes on.

    • Public Method ReadByte(): UInt8? Throws IOError method #

      The next byte, or Null once the stream has ended.

    • Public Async Method ReadByteAsync(): UInt8? Throws IOError method #

      ReadByte's Async twin, through the other Reader's ReadAsync.

    • Public Method ReadLine(): String? Throws IOError method #

      The next line, without the \n or \r\n that ends it, or Null once the stream has ended. A last line without one is a line too. When the other Reader throws, what it had of the line waits for the next ReadLine, which goes on with it.

    • Public Async Method ReadLineAsync(): String? Throws IOError method #

      ReadLine's Async twin, through the other Reader's ReadAsync.

    Report an issue with this page or with FutureBlitz on GitHub.