FileStream

FileStream class

Represents a file stream supporting synchronous and asynchronous read and write operations. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

class FileStream : public System::IO::Stream

Methods

MethodDescription
virtual System::SharedPtr<System::IAsyncResult> BeginRead(System::ArrayPtr<uint8_t>, int, int, System::AsyncCallback, System::SharedPtr<System::Object>)Initiates an asynchronous read operation.
virtual System::SharedPtr<System::IAsyncResult> BeginWrite(System::ArrayPtr<uint8_t>, int, int, System::AsyncCallback, System::SharedPtr<System::Object>)Initiates an asynchronous write operation.
void Close() overrideCloses the current FileStream object.
void CopyTo(const SharedPtr<Stream>&)Copies bytes to the specified stream.
void CopyTo(const SharedPtr<Stream>&, int32_t)Copies bytes to the specified stream, using the specified buffer size.
void Dispose() overrideReleases all resources used by the current object and closes the stream.
virtual int EndRead(System::SharedPtr<System::IAsyncResult>)Waits until the specified asynchronous read operation completes.
virtual void EndWrite(System::SharedPtr<System::IAsyncResult>)Ends an asynchronous write operation. Waits until the specified asynchronous write operation completes.
virtual bool Equals(ptr)Compares objects using C# Object.Equals semantics.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static std::enable_if<!IsSmartPtr<T1>::value&&!IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares value type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
FileStream(const String&, FileMode)Constructs a new instance of FileStream class and initializes it with the specified parameters.
FileStream(const String&, FileMode, FileAccess, FileShare, int32_t, FileOptions)Constructs a new instance of FileStream class and initializes it with the specified parameters.
FileStream(const FileStream&)
void Flush() overrideClears this stream’s buffers and writes all buffered data to the underlying file.
void Flush(bool)Clears this stream’s buffers and writes all buffered data to the underlying file. Synonym for method Flush().
bool get_CanRead() const overrideDetermines if the stream is readable.
bool get_CanSeek() const overrideDetermines if the stream supports seeking.
virtual bool get_CanTimeout() constGets a value that determines whether the current stream can time out.
bool get_CanWrite() const overrideDetermines if the stream is writable.
int64_t get_Length() const overrideReturns the length of the stream in bytes.
String get_Name() constReturns the name of the file encapsulated by the current FileStream object.
int64_t get_Position() const overrideReturns the current position of the stream.
virtual int get_ReadTimeout() constGets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
virtual int get_WriteTimeout() constGets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
FileStream& operator=(const FileStream&)
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
int32_t Read(const ArrayPtr<uint8_t>&, int32_t, int32_t) overrideReads the specified number of bytes from the stream and writes them to the specified byte array.
int32_t Read(const System::Details::ArrayView<uint8_t>&, int32_t, int32_t) overrideReads the specified number of bytes from the stream and writes them to the specified byte array.
int32_t Read(const System::Details::StackArray<uint8_t, N>&, int32_t, int32_t)Reads the specified number of bytes from the stream and writes them to the specified byte array.
int32_t ReadByte() overrideReads a single byte from the stream and returns a 32-bit integer value equivalent to the value of the read byte.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
int64_t Seek(int64_t, SeekOrigin) overrideSets the position of the stream represented by the current object.
void set_Position(int64_t) overrideFlushes the stream and then sets the stream’s position.
virtual void set_ReadTimeout(int)Sets a value that determines whether the current stream can time out.
virtual void set_WriteTimeout(int)Sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
void SetLength(int64_t) overrideSets the length of the stream represented by the current object.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void Write(const ArrayPtr<uint8_t>&, int32_t, int32_t) overrideWrites the specified subrange of bytes from the specified byte array to the stream.
void Write(const System::Details::ArrayView<uint8_t>&, int32_t, int32_t) overrideWrites the specified subrange of bytes from the specified byte array to the stream.
void Write(const System::Details::StackArray<uint8_t, N>&, int32_t, int32_t)Writes the specified subrange of bytes from the specified byte array to the stream.
void WriteByte(uint8_t) overrideWrites the specified unsigned 8-bit integer value to the stream.
~FileStream()Destructor.
virtual ~Object()Destroys object. Frees all internal data structures.

Fields

FieldDescription
static constexpr DefaultBufferSizeDefault value of the number of bytes bufferred during read and write operations.
static NullA stream with no underlying storage.

See Also