Packages

  • package root
    Definition Classes
    root
  • package zio
    Definition Classes
    root
  • package nio

    ZIO-NIO, the API for using Java's NIO API in ZIO programs.

    ZIO-NIO, the API for using Java's NIO API in ZIO programs.

    Definition Classes
    zio
  • package channels
    Definition Classes
    nio
  • final class FileChannel extends BlockingChannel

    A channel for reading, writing, mapping, and manipulating a file.

    A channel for reading, writing, mapping, and manipulating a file.

    Unlike network channels, file channels are seekable with a current position that can be changed. The inherited read and write methods that do not take a position operate at the current position and update the position based on the number of bytes actually read or written.

    Definition Classes
    channels
  • BlockingFileOps
c

zio.nio.channels.FileChannel

BlockingFileOps

final class BlockingFileOps extends GatheringByteOps with ScatteringByteOps

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BlockingFileOps
  2. ScatteringByteOps
  3. GatheringByteOps
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def channel: java.nio.channels.FileChannel
    Attributes
    protected[channels]
    Definition Classes
    BlockingFileOpsScatteringByteOpsGatheringByteOps
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. def force(metadata: Boolean)(implicit trace: Trace): IO[IOException, Unit]

    Forces any updates to this channel's file to be written to the storage device that contains it.

    Forces any updates to this channel's file to be written to the storage device that contains it.

    metadata

    If true then this method is required to force changes to both the file's content and metadata to be written to storage; otherwise, it need only force content changes to be written

  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def lock(position: Long = 0L, size: Long = Long.MaxValue, shared: Boolean = false)(implicit trace: Trace): IO[IOException, FileLock]

    Acquires a lock on the given region of this channel's file.

    Acquires a lock on the given region of this channel's file. An invocation of this method will block until the region can be locked, this channel is closed, or the invoking thread is interrupted, whichever comes first.

    position

    The position at which the locked region is to start, must be >= 0

    size

    The size of the locked region; must be >= 0, and the sum position + size must be >= 0

    shared

    true to request a shared lock, in which case this channel must be open for reading (and possibly writing); false to request an exclusive lock, in which case this channel must be open for writing (and possibly reading)

  15. def map(mode: MapMode, position: Long, size: Long)(implicit trace: Trace): IO[IOException, MappedByteBuffer]

    Maps a region of this channel's file directly into memory.

    Maps a region of this channel's file directly into memory.

    A region of a file may be mapped into memory in one of three modes:

    • Read-only: Any attempt to modify the resulting buffer will cause a ReadOnlyBufferException to be thrown. (MapMode.READ_ONLY)
    • Read/write: Changes made to the resulting buffer will eventually be propagated to the file; they may or may not be made visible to other programs that have mapped the same file. (MapMode.READ_WRITE)
    • Private: Changes made to the resulting buffer will not be propagated to the file and will not be visible to other programs that have mapped the same file; instead, they will cause private copies of the modified portions of the buffer to be created. (MapMode.PRIVATE)
    mode

    Indicates if the file is to be mapped read-only, read/write, or private (copy on write).

    position

    The position within the file at which the mapped region is to start, must be >= 0

    size

    The size of the region to be mapped, must be >= 0 and <= Int.MaxValue

  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def read(dst: ByteBuffer, position: Long)(implicit trace: Trace): IO[IOException, Int]

    Reads a sequence of bytes from this channel into the given buffer, starting at the given file position.

    Reads a sequence of bytes from this channel into the given buffer, starting at the given file position. This method works in the same manner as the read(ByteBuffer) method, except that bytes are read starting at the given file position rather than at the channel's current position. This method does not modify this channel's position. If the given position is greater than the file's current size then no bytes are read.

    dst

    The buffer to put the read bytes into

    position

    The file position at which the transfer is to begin, must be >= 0

  20. final def read(dst: ByteBuffer)(implicit trace: Trace): IO[IOException, Int]

    Reads a sequence of bytes from this channel into the given buffer.

    Reads a sequence of bytes from this channel into the given buffer.

    Fails with java.io.EOFException if end-of-stream is reached.

    returns

    The number of bytes read, possibly 0

    Definition Classes
    ScatteringByteOps
  21. final def read(dsts: Seq[ByteBuffer])(implicit trace: Trace): IO[IOException, Long]

    Reads a sequence of bytes from this channel into the provided list of buffers, in order.

    Reads a sequence of bytes from this channel into the provided list of buffers, in order.

    Fails with java.io.EOFException if end-of-stream is reached.

    returns

    The number of bytes read in total, possibly 0

    Definition Classes
    ScatteringByteOps
  22. final def readChunk(capacity: Int)(implicit trace: Trace): IO[IOException, Chunk[Byte]]

    Reads a chunk of bytes.

    Reads a chunk of bytes.

    Fails with java.io.EOFException if end-of-stream is reached.

    capacity

    The maximum number of bytes to be read.

    returns

    The bytes read, between 0 and capacity in size, inclusive

    Definition Classes
    ScatteringByteOps
  23. final def readChunks(capacities: Seq[Int])(implicit trace: Trace): IO[IOException, List[Chunk[Byte]]]

    Reads a sequence of bytes grouped into multiple chunks.

    Reads a sequence of bytes grouped into multiple chunks.

    Fails with java.io.EOFException if end-of-stream is reached.

    capacities

    For each int in this sequence, a chunk of that size is produced, if there is enough data in the channel.

    returns

    A list with one Chunk per input size. Some chunks may be less than the requested size if the channel does not have enough data

    Definition Classes
    ScatteringByteOps
  24. def sink(bufferConstruct: UIO[ByteBuffer])(implicit trace: Trace): ZSink[Any, IOException, Byte, Byte, Long]

    A sink that will write all the bytes it receives to this channel.

    A sink that will write all the bytes it receives to this channel. The sink's result is the number of bytes written. Note: This method does not work well with a channel in non-blocking mode, as it will busy-wait whenever the channel is not ready for writes. The returned sink should be run within the context of a useBlocking call for correct blocking and interruption support.

    bufferConstruct

    Optional, overrides how to construct the buffer used to transfer bytes received by the sink to this channel. By default a heap buffer is used, but a direct buffer will usually perform better.

    Definition Classes
    GatheringByteOps
  25. def sink()(implicit trace: Trace): ZSink[Any, IOException, Byte, Byte, Long]
    Definition Classes
    GatheringByteOps
  26. def stream(bufferConstruct: UIO[ByteBuffer])(implicit trace: Trace): Stream[IOException, Byte]

    A ZStream that reads from this channel.

    A ZStream that reads from this channel. Note: This method does not work well with a channel in non-blocking mode, as it will busy-wait whenever the channel is not ready for reads. The returned stream should be run within the context of a useBlocking call for correct blocking and interruption support.

    The stream terminates without error if the channel reaches end-of-stream.

    bufferConstruct

    Optional, overrides how to construct the buffer used to transfer bytes read from this channel into the stream. By default a heap buffer is used, but a direct buffer will usually perform better.

    Definition Classes
    ScatteringByteOps
  27. def stream()(implicit trace: Trace): Stream[IOException, Byte]
    Definition Classes
    ScatteringByteOps
  28. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. def transferFrom(src: ScatteringByteOps, position: Long, count: Long)(implicit trace: Trace): IO[IOException, Long]

    Transfers bytes into this channel's file from the given readable byte channel.

    Transfers bytes into this channel's file from the given readable byte channel.

    src

    The source channel

    position

    The position within the file at which the transfer is to begin, must be >= 0

    count

    The maximum number of bytes to be transferred, must be >= 0

  31. def transferTo(position: Long, count: Long, target: GatheringByteOps)(implicit trace: Trace): IO[IOException, Long]

    Transfers bytes from this channel's file to the given writable byte channel.

    Transfers bytes from this channel's file to the given writable byte channel.

    position

    The position within the file at which the transfer is to begin, must be >= 0

    count

    The maximum number of bytes to be transferred, must be >= 0

    target

    The target channel

  32. def truncate(size: Long)(implicit trace: Trace): IO[IOException, Unit]

    Truncates this channel's file to the given size.

    Truncates this channel's file to the given size. If the given size is less than the file's current size then the file is truncated, discarding any bytes beyond the new end of the file. If the given size is greater than or equal to the file's current size then the file is not modified. In either case, if this channel's file position is greater than the given size then it is set to that size.

    size

    The new size, must be >= 0

  33. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  34. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  35. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  36. def write(src: ByteBuffer, position: Long)(implicit trace: Trace): IO[IOException, Int]

    Writes a sequence of bytes to this channel from the given buffer, starting at the given file position.

    Writes a sequence of bytes to this channel from the given buffer, starting at the given file position. This method works in the same manner as the write(ByteBuffer) method, except that bytes are written starting at the given file position rather than at the channel's current position. This method does not modify this channel's position. If the given position is greater than the file's current size then the file will be grown to accommodate the new bytes; the values of any bytes between the previous end-of-file and the newly-written bytes are unspecified.

    src

    The buffer containing the bytes to write

    position

    The file position at which the transfer is to begin, must be >= 0

  37. final def write(src: ByteBuffer)(implicit trace: Trace): IO[IOException, Int]
    Definition Classes
    GatheringByteOps
  38. final def write(srcs: List[ByteBuffer])(implicit trace: Trace): IO[IOException, Long]
    Definition Classes
    GatheringByteOps
  39. final def writeChunk(src: Chunk[Byte])(implicit trace: Trace): IO[IOException, Unit]

    Writes a chunk of bytes.

    Writes a chunk of bytes.

    Multiple writes may be performed to write the entire chunk.

    Definition Classes
    GatheringByteOps
  40. final def writeChunks(srcs: List[Chunk[Byte]])(implicit trace: Trace): IO[IOException, Unit]

    Writes a list of chunks, in order.

    Writes a list of chunks, in order.

    Multiple writes may be performed in order to write all the chunks.

    Definition Classes
    GatheringByteOps

Inherited from ScatteringByteOps

Inherited from GatheringByteOps

Inherited from AnyRef

Inherited from Any

Ungrouped