["..G$ ","|compresses|DeflateStream$","EHYVXYEEXYYusing System.IO;Yusing System.IO.Compression;Yusing System.Text;YYclass ProgramY{YEstatic void Main()YE{HtryH{XHE// 1.HE// Starting file is 26,747 bytes.HEXstring anyString = File.ReadAllText(XVTextFile1.txtVX);XYHE// 2.HE// Output file is 7,388 bytes.HEXCompressStringToFile(XVnew.gzVX, anyString);H}HcatchH{XHE// Could not compress.HX}YE}YYEpublic static void XCompressStringToFileX(string fileName, string value)YE{XH// A.H// Write string to temporary file.HXstring temp = Path.GetTempFileName();HFile.WriteAllText(temp, value);XYH// B.H// Read file into byte array buffer.HXbyte[] b;Husing (FileStream f = new FileStream(temp, FileMode.Open))H{HEb = new byte[f.Length];HEf.Read(b, 0, (int)f.Length);H}XYH// C.H// Use GZipStream to write compressed bytes to target file.HXusingX (FileStream f2 = new FileStream(fileName, FileMode.Create))HXusingX (GZipStream gz = new XGZipStreamX(f2, CompressionMode.Compress, false))H{HEgz.XWriteX(b, 0, b.Length);H}YE}Y}YYXResultsXYYStarting file is 26,747 bytes.YOutput file is 7,388 bytes.XYYusing System.IO;Yusing System.IO.Compression;YYclass ProgramY{YEstatic void Main()YE{HCompressWithDeflate(XVC:\\\\programs\\\\example.txtVX,HEXVC:\\\\programs\\\\deflate-outputVX);YE}YYEstatic void CompressWithDeflate(string inputPath, string outputPath)YE{XH// Read in input file.HXbyte[] b = File.ReadAllBytes(inputPath);XYH// Write compressed data with DeflateStream.HXusingX (FileStream f2 = new FileStream(outputPath, FileMode.Create))HXusingX (XDeflateStreamX deflate = new DeflateStream(f2,HECompressionMode.Compress, false))H{HEdeflate.Write(b, 0, b.Length);H}YE}Y}X","A*AEArAeX+(C| 6464966G5577F+CE(~EC1CaC 86G557X","GZipStream."," This class compresses data. It saves data efficiently\u2014such as in compressed log files. GZIP has a file header, while DEFLATE does not.","We develop"," a utility method in the C# language that uses the System.IO.Compression namespace. It creates GZIP files. It writes them to the disk.","GZipStream example."," We use the .NET Framework's built-in methods. Compression and decompression using GZIP is common in any programming language. GZIP is widely used on the Internet. ","The GZIP compression algorithm is used on many web pages to boost performance. This method shows the use of GZIP on a string.","Notes, above method."," The method compresses strings to disk. GZipStream requires bytes and this example uses a byte array. We can use the File static methods to write to temporary files. ","Remember to add System.IO.Compression at the top. You can find more information about byte arrays here.","Byte Array ","byte-array","Notes, continued."," In part A, we use Path.GetTempFileName and File.WriteAllText. This writes the string to a temporary file. In part B, we use FileStream here to read in bytes from the file. ","Using: ","The using statement provides effective system resource disposal. More examples are available.","Using ","using","Finally: ","In part C, we use a new GZipStream to write the compressed data to the disk. We must combine it with a FileStream.","Notes, reliable."," This is a tested and reliable method that I have used in deployed applications with no problems. It however can be slow. ","This article used to have an example that was incorrect. It had an encoding problem. Jon wrote in with a fix.","DeflateStream."," With DeflateStream we can output a deflate file. A GZIP file contains a DEFLATE body. With GZIP we have an additional header. ","So: ","We can use DeflateStream to generate the DEFLATE body with no header. This may be useful in some situations.","A summary."," We used GZipStream to compress to a file with an underlying FileStream. More complex methods are available for compression. This example alone does not meet most requirements."]

%iVBORw0KG;)NSUhEUg?AMc?ABGCAM?ABPN3CJ)GFBMVEX::R0dGb+pyzs7PU/dXo6Og/9kOVlZVen+xq?A.UlEQVR4Xu3Z626sMAwEYI8v4f3f+OgURWpYh9ltSllXnd8bwidrTQxyawIAQooH2x6L6oweVGf01K1IbJ9jZR22DUFVx/Y7HfbnKPD/qNN26zde0ndrPkBC6iaMMMoEHxKD1E+QUvzF3csTVNse/bDoMZ4MdDwifJk8/SPs7cEMkSu0DXHxdowmzZNHhC6zzJFcKDCsQq4Yo+3dHBgU2UjsjeQmBw9GRgEHh3ir4O.Vs2Rn5W1uKMvbsUdG/JyqLuWcmxpOTTX+fkQEVMYvjpHRSQURCDdwo8O2fOqgzCYg2CHbZCVUyf3q686OGPdESIpJHFIz4sOzlh32Ilv2pL0NQdnrDsgkhcEK44xnLHumO5l4lOHUwdnXOUQ6nDiWGAsO+wSB2dc6LADZMFBGbc6lDgWGBc6bKFfEca1jo05GnE8zUAP4if67vz80YiDVMOS2qw6YvocfHQoP19xxkUOJI4O9JZCvBEHYXyrg04H6TjonZE7OOM6h+Vd1yS9ZVVtEwdnbNhz5ggAowNAUEd/8Ya8OzYS4qDBc8uIo8dsNjl7DQffQGs7THq0jIMs1MIOiJxCtIYD5MuBewFHph9eIuqDTO53GOilO2WPi7ylQ2KQ4Eh3/r1Q5Y4kDTYA+x8k7rQbtTd0nMez+9TRIQUc/XPBCUMLOLz1qHtvXYd4AYc2knvKEWYPc4YZTsrB43c4tiy2Vo4CjmcYFRzOGQUcfPxwqeIQJ8Uo4phL1KWSI3/2qYpILUen6I7pZ/c6jn+IiIP+NFgRZQ)BJRU5Er@ggg==%iVBORw0KG;)NSUhEUg?AIw?ABpCAM?ADflzs9)VFBMVEX::2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfD?ACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3Jhbj.EMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjs)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AG4?ACCAgM?ADasxWR)DFBMVEX/2en:/+VlZX29vY4hdad)SElEQVR4AWPACZj/f0DmjkqOSjKtQgcLyJccZiEE9SOmP8mXHEaBMBoIo4EwGggryJccvvVKKAogTnJUclRyVHLklgmjkqOS?LWyrsxEHLD)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AIw?AB4BAM?ADS7QcC)GFBMVEX:/95cvSaspm/zr6ppPiuqvilofiMhfa6xS0c)fUlEQVR42u3XsQmAMBgF4V9x?OCfVxAdAEdQtwg1il0fsHS8IpIsLob4OvPnKy1V7WXWR9ER8oMs8hbZ6ImZUYTTTAwMDAwMDAwMDAwMDAfmX4T7Tl3V+o1iYieKifLYs5NFLOYxUQrDAwMDAwMDAwMDAwMzA/MFUSx0GveDtlxrtujxRk)ASUVORK5CYII=!C%iVBORw0KG;)NSUhEUg?ALQ?ACsCAM?ADllnb2)YFBMVEX::6lbiX3axHPiH97gb7q161sqeYPl3/8vyEj4Td4Ui83XZvzfH8x7VmbFX8eob7/rLW5sn+5NiekecRAw/8xzb/3/vw8/T9/87/yPnD6/iV2/D+/um0pwjKyMj/svb+8CR)JSUlEQVR4XtSZ2XLqOhBFkTzPEzMk+f+/vGobsUFSxaJj17neL3ldrFp2k2T3v979vtvezucNQrftBkW37eb6uLdte96eaLUNikYf2xG9oT5OEK22EeYTRG+mj+sNojfTx60k1e1z921AXyF6I6qvZalUt9uCvinoK92VDfVxKtVuIN6E6itBy+6NehN1lFK2W+kDouW76vMmRKut1MeRlqot/RhKWrdKH+nPY5dpx3HpuL/WQVulj8uPPfNzfPxBbprZUL1UHC7Yzz7HL6JpK/QBHPbsriDaUH1eXTR/g1o8zlS94FNorxFC/Ak6xr6rcehjpadQNDShxheNgbk9ryEazJig8UQDuscpX0k0gBnsEP1KvdgpP86LdrP7igZ0vxj0LDMPHsygXuyUHxnMHs1ANNYtdcrTmaC57GDG5FLQlxnRTHiXaCm7ZfpIF2XGhqFwQPuo5ov+K7MY4tykNr6BrPQU8hfFeRjmJjNtiT4uKzBHh5Dmhi7yHH0sKvovwBOxSiMMHcyyOEzL87xf/inkAx+ihg5LTuSYBPVj/b+OI4o0cDQ9hnFcvPUhLej2vKRobsQHpXgaiTb6kM/lD+a2XVA0C5iawIa4yHNAgxmqc+Z9OXLjsJswzOckXkWdm8xQzb0vlz8xI2LX06iwi8KChmqc8iVEMyI2gQ90C4tQ9wFmqM6ZpzzlxRGZEdupTKBjH4UTuuDdF34ch1+ByfwETcQ6ammOe8pTXhxEffg9FaGh89iAtqnP64oGJKDd77v4sWfUcinoI/8UhqEZMQZoRO2C7lh9XDhx6D4iI2InMxHTJQczXzVfNKCNiN3Q+qUnnes+h055zIAGsLlI4aKPMCyke+iDEQfjFIahiWyLRtRyIdUpJ2hMiW7mRCNqOaN6bdHoY1Y0opYzqj37OHKZ0YeP6JiI0Yc13cedLXqWtEoRPaJ2QHv30cH0SqKFEtCL2ahjD2hQ+9/ElBVHv6NVc1EPsRG1RNRu6jXj0J+4+jXq4R1azkS9suh0p9cLRD0LbfZh18G+K8JTNLAP7qiNP5VKqYgL9MEWfeTEIYzbVKEPQ7QFHUpccr5ozinsrcZau4+kEe/QRIaoXdD8153wF421Vh9JkAzjXpl/i5rzFILZ+ynEUuuSJ/v9vrGh8dJjiebHUdkCdNTQvFdLxj6yDMyyQB:XLRxyRNC1qqTGtAUdeGGZogGM6do8bzkQCbZgRgUf5KBGVFbdfBfdw2njv7tko9lBAqeyMl5k?aUS8pmlOH0Jccml8i.IVCOgQ9UKiRcOpo9JfT6EZ/EE2KNUZ8NAHR3TKisOuI8UfmqAZzochCYIAeO5L7iv6wmJuerdo6uNNMzmnDcO;GtAj5fcroN5V0TDqSPFry+m5qShPoYhU9SZEfViojl1pPqjBmFYv2kOkom9HsoagSBqhuijzcyqQzzNfoVf75ppRD+UJQJxRs2+K6Lh1FHBbB2G0Jw8+MdAyhKBOL+ecu+KaDh1VK8ncLzk0AzrWTkFgqiLN+iO+7prOHVUeE8k4yU3kHUgZSkRCKKG6DXiwN6ZcUKS6ZLbzE00BiIRiIKm8UWDmVFHjzLwptbIgK7HQGQ9qi7yCTkv/i66YdTRm1c7IdMWcxSNgUgZ1F8PYPMxvK/xFGJvR8W62ofwC7SApkDq4gGck+o36s5TNJe5ET2OiqFZkX2FoYs5+vr6Cmnqp46jYIhmxQFsYoZmnBMLOooOhwcvKQbwp6JTFjNWpXQIoRlXG79zGf+gOzxV19JcxxItPBVXVSX0hYltzfrrqUWsXefF9AYxxhItfPXi742NpTl5vvQAPPJq8lrVrwj1Ncc61l3xY3590blqxl/XDcOEHkVRTNdcjifGUzQ/DjCD2qUZ0BoYxLRql42qEQhLNP+L/7elGTsQJuKI9NT5CPaEGyMQf+gjOw6sdiLrqJ:II+wfvqsgR0I6ynkQH9bzBj+Qf4CPdVV7wMrkCsnDtZvK72FjEVKMW4h4qAFI272GsiJIdr3nFjQSTKdE2skGdCIgxbvR9wagdwYor1PtwENze6ZcejVAQLxruNox8Hp4xuaPZgjAFyNQPxEM5mb+A06mdFsxoHFAQLhifZnDvbZDouh2TMOqH7gTsZLj8cw5cUxBZyluC2keWbvzJh8DeS2Xhz6alcjdpdBs38cUJ0hkPL6sWh/zSg4ywLSPD+TGZMvgZzWEe3+DsqNg9Y9A9nv4/mnkMHs/A76CfTdwrjri6igg9Nnor2QA2BCMzcOqJ5uS6kU1AzR/ppxtZlxYOep57LMFPW3x1Poz5wAeaKGc39oJ8m9mwIpTxSIv2jhodksOAE0Nw6orhXvbfxlIvMVLWah4ZZBjTjcO3cqkBEXgfj+w1Bt/qi8wsA8Jw7s3irVEy4CmYnDn12/oaE68IVGHG7V5YiLQDxEu9n9AuEzA7q9leX+GUg3L9qf3R0IO2jsfr6WtwyBzD2F/uzMQHAKf9upvO5mAkEcn7KbgQRQzYoD1CeNWyMQQzR7pIO8+54YxDEDvdM948QYovkTirJGMwiEGwemcWPFHluij2qXaZ/z0wtVwLygQMQcdL/z2veEi0DcS2lHGj6HRyA/2PD4EILGigPTuEpETb14L537HBRI9oPRNTduEyMOBFLv4oAaRCEY94NcLtnoFgtAbbB/EgcCUcjE/L1bdBRIirDGD+Hq6tj3VaXi+K+dM1Z1IISCqCAIW6TwIbHz/z8zELuzRYLXAwbeLbeQ3eEwztxAEuYTIK3lkvYO/H+SmPudq+c7DP09vhd6uh6A3jQMCPXWkxb/BKu+yWiX8c7wf8TgmBYot7sBKaA8fOaUeTfNNFRQHjxRopmGuhGQ0SCzMmUHIJQZTx1A+h5AyvTmkfTp7Q5IXToIMvuAwAbXZcb3moBkArLi+ATLB4SUnykzfQ42eKjM8LkOyoO3tj81AEiNyBwHBJQbMvuACOFI7wOtC+FI?SUCzILgDBIBcORPxWAgHJOCRRXtzBeRjjyC6OQQT0HIeWUGSwdBogRjnxAhFvb3ygY4cjfKBgy+xsFT2a/MFYhHIkbBWEP6hfGKoQjHxAhg/obBWNB5wOCR4cCMhD1hXBkFEYrg/p9oGQh6ruFccqcxyWwYQEy8glBY+UHVyE2m4AIMutxT5HZB6Skn5sy0pz/eQEivnC1LJWQEQ)BJRU5Er@ggg==$/9j/2wBD?cHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwf/wQARCAC?PMDACI?RE?hEA/8QAOw?AwEBAQEB)))?ECAwQFBggQAQADAQE?gM?wE))BAhEDEiFhBBNBFDFRYv/a?wD?AB?I?D8A/SI?AIAGQ0tBmNTNkTYhjTSmzObJmwXjX0n0ym5e4PDxt6Hpz+1exgx0ejiXPFlRYYWN9PWMWaaRYo0wo0))))?AgUyDPSmUzZnNiVENJsibM5sztc4hUQ2myJuwm7K1/tpFTx0TdE3c1usMbdftUUVjrm/wBpm7hnsn9zSOR49D9hxf7eb+2F16fYmhY9GLta3edXo3rdnNUy74s0rLjrd00llaEumFMay1hMSiTAIyMENLQAWgaZgtGjQoEDIw?UomTmWVpJcQUyytcXs572aVhcQq12Frsr3c1+mN60XEOi3X7c9+zlv1+3Ffv9uivEO+/f7YW/Ij/AK8u/wCTn9clvyft0V4FNoh7NvyPsv3/AG8T/Imf9SqvaZVPHE+4e1Hb7bV6PGr0dVLsbVxXqJevS7ppd5lLOyk647zCZelzs66WcHN1Vs5L2RLsrZtFnDF2lbsvSYdmwXphFz9H7VjbRrPR6L0eNNDP0NP0MaaNRqtPSxRpNaTABkizKW0xpTUmkS5LxLlvEvSmjC/PWlbKiXj9Nhw9LTD2unGf+PL7cZ+XXytDSJeT1vjze3WYel25z8vMvxtefp6PLwz62yHFa9rz9CtJl2x+PMfxrTh8/wCmlu0RHw8+/adctOUy6acJdnPh9O2nH6cPX8jDraZedXh9OinHHo14rjk4r/k/+nRXXLSkw7aVVXnjelMcd++t4hdPhr6REDJck3VNVepXW0soquIlHtHlvWzWLOerWJP2cVbehrKJOJVFl4109ZqhrEjFxK4nWS4VEomGkHCFw0hEmAFpMEZgFMRJgBjfnEuLrwiYn4emm1dOLTC4s+Z7fjfTk/xM/j6a/GJc1+MOmv5E5jPr8w+cv+Pn8Z14/L3L8fplHH6XPb4cX6vlx05OunNtXnn8bRRw9rurlRjFIPw28njitaXXFWPlUQvDZzMtIgsPDw2cmWHgwyGA9SAMaRKqs4aVaVDRaIW3hnIXVKoaQiVfxcI/i4aQgwAYBaZTCkjTiU4ICl6CGmkTGsb0bCSDhtziUTziHbNYT4E2keYcfg/DpmiZqwt8rhy+UzDpmqZoymrSJc+DG3g/CZqcSxiFeWsUV4R5XrLynG/gpqXgemODGvksT5PUxCoGKrDSsCZVCyhUQ3hlJxC4KIXjSIRMg4JS0gGFYkEYMEDBAgYAI?FgwzGBMwzmrYsTNVRLGap8N8LynyesfA8NsGF4P0yih+WuAeIL0y8lNWxYJoPTCal5bTUvKJoqLMPKsaeTioiqvSIhcQcQpcVRMgxhrSDgYFJAMGQI?ADQYBaNLQYLT?Mj?BAgZ?AkgwAoAj.QMBSTMDAWA8PFYnSwwZgjAB?AP/9k=%iVBORw0KG;)NSUhEUg?AMk?ABhCAM?ABLV3W0)YFBMVEX+:/q:3j:zc:zy:7ojyrh7P3UiTj5:4d9+/3lB3ZNKX1nzP3Hbf1NL5Fvrnk8P7s7u3uwn3uftVy+vXx9PTr9f7d6v7m9ebp6em4f0hoaWm0/fnpyOvp5caVWYCLfXim?ACzUlEQVR4Xu3c2Y7iMBCG0S4vWdj3pbd5/7ccyK+O0zFIccUam0x9l0gldHDTEKnCW/ZJ1fCynEdVeNnM+w4zPFgymXd1GKGYHOZdPw4KCRaUct6DgKGGBgwoied/S4wBQw8NGFASz3uQy24xC2mxuxDhhM0dUuxXy5BW++LXvD7UYR10nwLINxxBlm8ig4i+4AiyfHXmP+vwPkHpHgnRBZBASnMqOBF?ilFO69rTpoIh9I5kt2M0w4SItovOe3b+QNLcsChdCVqwZIsVEMhUiuWZNXO17xUT0KkZrwUIbXkhfkxEoIEkDESUBRX0s6PkIACCSndAqwty9LagRINidIOMG8aKGnnmRKtnknK959Ky5HM/7TxJeuPpnESKJBlS9CcIQEExTgTVPIliCGBI6IEDZIoTxJyKO2854gqsf9e8hFNgn9aliUBBZ7EZ4L4EhdHguJJLP994pqPkqzXsSWWIwEELRmS9bquo0tmLImDzBkSaBL/dfmQfCSWI3GQlJIep2RIHCSxpERciYPcSyp5j/kZH10iknI2AQkgLy1x73Y7e1UJLyfh5SSMJioRiUhEIhKRiEQkIhGJSEQiEhopobwlIhHJdHYkprG3MqFdolj7XTRyv4si7HdNZ+ducnuQ6XdTTYTd1PT7wgbjwfPaPX8eO9yAgALL0NzzJ96rh8Owx918+nsdvFcCBb8OSe8/8R38VzKHe4LMcXt1bY/mR7M5d9u0AKW7qUaS9j4tZK69tgbAc6/CAK77GUASBvHVa9tIzl5FI9F+kKSmHB9IjjfIyYcUpxuEtB9BkpiyfSC5H0rxQLK5SZT2U1lIHkAaiQ+BRD8qA0kVSVK9lmQjEpGIR.ieZnPE/mMl+9dk/gujJ5enxSe5On1CSD5UQCpTPHkmlH1HMq8ZVLVu45vFwROXUtxah+nrkVRle2vu3AezxDDePy/TZKkv3nHL1n0R/wt)AElFTkSuQmCC!