blob: 29a1a4202d19ce93a1d02b6c0ceeb81b5f30e141 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#include <iostream>
#include <fstream>
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/filter/zlib.hpp>
//#include <boost/iostreams/filter/bzip2.hpp>
#include <boost/iostreams/filter/gzip.hpp>
#include <boost/iostreams/filtering_stream.hpp>
using namespace boost::iostreams;
using namespace std;
int main()
{
//ofstream raw("out-raw");
filtering_ostream out_z;
out_z.push(gzip_compressor());
//out_gz.push(gzip_compressor());
out_z.push(file_sink("out-z", std::ios::binary));
//out_gz.push(file_sink("out-gz", std::ios::binary));
for ( size_t i = 0; i < 10; i++) {
out_z << "line #" << i << endl;
//out_gz << "line #" << i << endl;
//out_bz << "line #" << i << endl;
//raw << "line #" << i << endl;
}
// flush(out);
close(out_z);
//close(out_gz);
//close(out_bz);
//raw.close();
for (size_t i = 0; i < 5; i++) {
ifstream file("out-z", ios_base::in | ios_base::binary);
filtering_istream in;
in.push(gzip_decompressor());
in.push(file);
string s;
while (getline(in, s)) {
cout << s << endl;
}
file.close();
}
}
|