I am not not that good at smalltalk, so I would like like to know how are these files stored and read.
Offline
The specs are available on the website, but are slightly out of date - see here:
http://scratch.mit.edu/forums/viewtopic.php?id=18497
Information is stored in an 'object store', a series of objects with interconnecting references. The .sb file is split up into three main parts - the header, the info object store (things like the author, a thumbnail of the project, scratch version information, etc), and the data object store (everything else - blocks, scripts, images, sound, etc).
Offline