IRandomAccessStream IRandomAccessStream IRandomAccessStream IRandomAccessStream IRandomAccessStream Interface


Supports random access of data in input and output streams.

public : interface IRandomAccessStream : IClosable, IInputStream, IOutputStream
struct winrt::Windows::Storage::Streams::IRandomAccessStream : IClosable, IInputStream, IOutputStream
public interface IRandomAccessStream : IDisposable, IInputStream, IOutputStream
Public Interface IRandomAccessStream Implements IDisposable, IInputStream, IOutputStream
// You can't instantiate an interface directly in JavaScript. You can use objects that implement the interface, however.

Windows 10 requirements

Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)


For more info, see Quickstart: Reading and writing files, which shows how to read and write bytes to a file by using a RandomAccessStream. To encode an image by using a stream, see Imaging.


CanRead CanRead CanRead CanRead CanRead

Gets a value that indicates whether the stream can be read from.

CanWrite CanWrite CanWrite CanWrite CanWrite

Gets a value that indicates whether the stream can be written to.

Position Position Position Position Position

Gets the byte offset of the stream.

Size Size Size Size Size

Gets or sets the size of the random access stream.


CloneStream() CloneStream() CloneStream() CloneStream() CloneStream()

Creates a new instance of a IRandomAccessStream over the same resource as the current stream.

Close Close Close Close Close

Releases system resources that are exposed by a Windows Runtime object.

.NET This interface appears as System.IDisposable.

C++/CX This interface appears as Platform::IDisposable.

(Inherited from IClosable)
FlushAsync FlushAsync FlushAsync FlushAsync FlushAsync

Flushes data asynchronously in a sequential stream.

(Inherited from IOutputStream)
GetInputStreamAt(UInt64) GetInputStreamAt(UInt64) GetInputStreamAt(UInt64) GetInputStreamAt(UInt64) GetInputStreamAt(UInt64)

Returns an input stream at a specified location in a stream.

GetOutputStreamAt(UInt64) GetOutputStreamAt(UInt64) GetOutputStreamAt(UInt64) GetOutputStreamAt(UInt64) GetOutputStreamAt(UInt64)

Returns an output stream at a specified location in a stream.

ReadAsync(IBuffer,UInt32,InputStreamOptions) ReadAsync(IBuffer,UInt32,InputStreamOptions) ReadAsync(IBuffer,UInt32,InputStreamOptions) ReadAsync(IBuffer,UInt32,InputStreamOptions) ReadAsync(IBuffer,UInt32,InputStreamOptions)

Reads data from the stream asynchronously.

(Inherited from IInputStream)
Seek(UInt64) Seek(UInt64) Seek(UInt64) Seek(UInt64) Seek(UInt64)

Sets the position of the stream to the specified value.

WriteAsync(IBuffer) WriteAsync(IBuffer) WriteAsync(IBuffer) WriteAsync(IBuffer) WriteAsync(IBuffer)

Writes data asynchronously in a sequential stream.

(Inherited from IOutputStream)