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