Eh bien, laissez-moi essayer de répondre à certaines de ces questions pour vous. Le zipping est un moyen de compresser un paquet de données, ce qui le rend très petit et facile à transférer. départ: http://forums.pcworld.co.nz/archive/index.php/t-22243.html
cours d'eau: cours d'eau sont juste une façon d'abstraire une séquence d'octets de sorte que vous pouvez lire/écrire (et chercher habituellement dans) les. Pour transformer un objet en un tableau de flux ou d'octets, vous devez utiliser BinaryFormatter (ou SoapFormatter) avec les attributs Serializiable et NonSerialized appliqués aux champs d'objets que vous sérialisez. La sérialisation d'un objet écrit simplement ses données de champ dans n'importe quel flux de votre choix (puisque System.IO.Stream est la classe de base, vous pouvez écrire dans un MemoryStream, FileStream, NetworkStream, etc.)
Traiter uniquement avec des portions de le fichier est assez facile aussi. Tout ce que vous devez faire est d'utiliser la méthode Seek d'un Stream (ou la propriété Position) pour lire certains morceaux de données. Par exemple:
byte[] buffer = new byte[4000];
myStream.Position = 1000;
myStream.Read(buffer, 0, buffer.Length);
Cela ne lire des octets 1000-5000 dans la mémoire tampon, sans même regarder le reste des données dans le fichier, je crois.
.NET vous permet de lire un fichier, le fichier entier ou rien d'un fichier. Donc, sachant cela, le GZipStream fonctionnera de manière similaire.
Quelques liens pour vous:
http://www.geekpedia.com/tutorial190_Zipping-files-using-GZipStream.html
http://www.csharphacker.com/technicalblog/index.php/2009/07/27/gzipstream-helper-gzip/
http://dotnetperls.com/gzipstream