Function iterateReaderSync

  • Turns a ReaderSync into an iterator.

    Parameters

    • reader: ReaderSync

      The reader to read from

    • Optionaloptions: {
          bufSize?: number;
      }

      The options

      • OptionalbufSize?: number

    Returns IterableIterator<Uint8Array>

    The iterator of Uint8Array chunks

    import { iterateReaderSync } from "@std/io/iterate-reader";
    import { assert } from "@std/assert/assert"

    using file = Deno.openSync("README.md");
    for (const chunk of iterateReaderSync(file)) {
    assert(chunk instanceof Uint8Array);
    }

    Second argument can be used to tune size of a buffer. Default size of the buffer is 32kB.

    import { iterateReaderSync } from "@std/io/iterate-reader";
    import { assert } from "@std/assert/assert"

    using file = await Deno.open("README.md");
    const iter = iterateReaderSync(file, {
    bufSize: 1024 * 1024
    });
    for (const chunk of iter) {
    assert(chunk instanceof Uint8Array);
    }

    Iterator uses an internal buffer of fixed size for efficiency; it returns a view on that buffer on each iteration. It is therefore caller's responsibility to copy contents of the buffer if needed; otherwise the next iteration will overwrite contents of previously returned chunk.