It's not really what I meant. If I've got a 1 GB file (for example) and wanted to compress it then I wouldn't read in all 1 GB into memory at once. I want to read it 4 MB at a time, compress the 4MB chunk then output them sequentially to another file.
I'm not really familiar with data compression, but I think it involved created 'dictionarys'? I need a method whereby the 4MB chunks would all share the same dictionary.