Xojo.IO.BinaryStream.Open
From Xojo Documentation
Shared Method
Xojo.IO.BinaryStream.Open(file As Xojo.IO.FolderItem, mode As LockModes) As Xojo.IO.BinaryStream
Supported for all project types and targets.
Supported for all project types and targets.
Opens the passed FolderItem as a binary stream with the specified lock mode. If an error occurs, an IOException is raised.
Sample Code
Read all the data from a file:
Using Xojo.Core
Using Xojo.IO
Var f As FolderItem = SpecialFolder.Documents.Child("MyFile.data")
Var bStream As BinaryStream
bStream = BinaryStream.Open(f, BinaryStream.LockModes.Read)
Var data As MemoryBlock
data = bStream.Read(bStream.Length)
bStream.Close
Using Xojo.IO
Var f As FolderItem = SpecialFolder.Documents.Child("MyFile.data")
Var bStream As BinaryStream
bStream = BinaryStream.Open(f, BinaryStream.LockModes.Read)
Var data As MemoryBlock
data = bStream.Read(bStream.Length)
bStream.Close
To append data to a binary file, open the file in read/write mode and then call the Write method once you have reached EOF:
Using Xojo.IO
Using Xojo.Core
Var f As FolderItem = SpecialFolder.Documents.Child("MyFile.data")
Var bStream As BinaryStream
bStream = BinaryStream.Open(f, BinaryStream.LockModes.ReadWrite)
Var data As MemoryBlock
data = bStream.Read(bStream.Length) // reached EOF
Var mb As MemoryBlock
Var t As Text = "Text to append"
mb = TextEncoding.UTF8.ConvertTextToData(t)
bStream.Write(mb) // data is appended to the BinaryStream
bStream.Close
Using Xojo.Core
Var f As FolderItem = SpecialFolder.Documents.Child("MyFile.data")
Var bStream As BinaryStream
bStream = BinaryStream.Open(f, BinaryStream.LockModes.ReadWrite)
Var data As MemoryBlock
data = bStream.Read(bStream.Length) // reached EOF
Var mb As MemoryBlock
Var t As Text = "Text to append"
mb = TextEncoding.UTF8.ConvertTextToData(t)
bStream.Write(mb) // data is appended to the BinaryStream
bStream.Close