Module 

Interface StreamSourceChannel

    • Method Detail

      • transferTo

        long transferTo​(long position,
                        long count,
                        java.nio.channels.FileChannel target)
                 throws java.io.IOException
        Transfers bytes into the given file from this channel. Using this method in preference to FileChannel.transferFrom(ReadableByteChannel, long, long) may provide a performance advantage on some platforms.

        If the current thread is interrupted when this method is called, it may throw a InterruptedIOException; however, if this exception is thrown, the InterruptedIOException.bytesTransferred field is guaranteed to be 0.

        Parameters:
        position - the position within the file from which the transfer is to begin
        count - the number of bytes to be transferred
        target - the file to write to
        Returns:
        the number of bytes (possibly 0) that were actually transferred
        Throws:
        java.io.IOException - if an I/O error occurs
      • transferTo

        long transferTo​(long count,
                        java.nio.ByteBuffer throughBuffer,
                        StreamSinkChannel target)
                 throws java.io.IOException
        Transfers bytes into the given channel target. On some platforms, this may avoid copying bytes between user and kernel space. On other platforms, bytes are passed through the throughBuffer parameter's buffer space. On entry, throughBuffer will be cleared. On exit, the buffer will be flipped for emptying, and may possibly be empty or may contain data. If this method returns a value less than count, then the remaining data in throughBuffer may contain data read from this channel which must be written to target to complete the operation. Note that using a direct buffer may provide an intermediate performance gain on platforms without zero-copy facilities.

        If the current thread is interrupted when this method is called, it may throw a InterruptedIOException; however, if this exception is thrown, the InterruptedIOException.bytesTransferred field is guaranteed to be 0. Note that the return value is the amount of data that was actually transferred to the StreamSinkChannel. The actual amount of data read could be larger than this, and can be calculated by adding the return value and the amount of data left in throughBuffer.

        Parameters:
        count - the number of bytes to be transferred
        throughBuffer - the buffer to copy through.
        target - the destination to write to
        Returns:
        the number of bytes (possibly 0) that were actually transferred, or -1 if the end of input was reached
        Throws:
        java.io.IOException - if an I/O error occurs