[sligt improvement] New Binary File Stream

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[sligt improvement] New Binary File Stream

Guillermo Polito
Hi guys,

due to last week's discussions and some comments in the issue tracker, I wrote this morning the little improvement of the day: A simple BinaryFileStream. That is:

A file stream that is
  - simple (no character encoding, no buffering)
  - binary (no automatic transformation to ascii characters)

The good thing is that these features are not lost: this file stream is composable with Zn stream decorators:

"encoding"
fileStream := BinaryFileStream openFileNamed: 'test.txt'.
writeStream := ZnCharacterWriteStream on: fileStream.
writeStream nextPutAll: 'aáèOûï'.
writeStream nextPut: $a.

fileStream := BinaryFileStream openFileNamed: 'test.txt'.
readStream := ZnCharacterReadStream on: fileStream.
readStream upToEnd.

"Buffering"
fileStream := BinaryFileStream openFileNamed: 'test.txt'.
readStream := ZnBufferedReadStream on:(ZnCharacterReadStream on: fileStream).
readStream upToEnd.

On the other side, this stream does not handle UI (like the old FileStream that e.g., asks the user if a file already exists), since I believe this is a concern that should be of the tools and not the file stream ^^.

This is related to issue 15486. A slice is in the inbox for it if you would like to try.

Guille