correct way of saving data to file in C++, 1.8.2 api

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

correct way of saving data to file in C++, 1.8.2 api

scarlehoff
Hi,
I'm trying to modify the first example in the c++ tutorial:
http://avro.apache.org/docs/1.8.1/api/cpp/html/index.html (note: docs for c++,1.8.2 are not working for me)
I'm trying to write to a file. For this I modify the example from

    std::auto_ptr<avro::OutputStream> out = avro::memoryOutputStream();
    avro::EncoderPtr e = avro::binaryEncoder();
    e->init(*out);
    c::cpx c1;
    c1.re = 1.0;
    c1.im = 2.13;
    avro::encode(*e, c1);

to
     std::auto_ptr<avro::OutputStream> outFile = avro::fileOutputStream("filetest.db");
     avro::EncoderPtr e = avro::binaryEncoder();
     e->init(*outFile);
     c::cpx c1;
     c1.re = 1.0;
     c1.im = 2.13;
     avro::encode(*e, c1);
     outFile->flush();

I get a file "filetest.db" which I can then read using C++.
However, I cannot read the resulting file using python because the following code fails:
    from avro.datafile import DataFileReader
    from avro.io import DatumReader
    reader = DataFileReader(open("filetest.db", "rb"), DatumReader())
 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8f in position 2: invalid start byte

My guess is my C++ code is wrong, but I'm can't find any (recent) documentation on what is the correct way of saving things to a file when using C++.
Thanks,
s
Reply | Threaded
Open this post in threaded view
|

Re: correct way of saving data to file in C++, 1.8.2 api

iampete
Did you ever work this out?  I am having the same problem.
Thanks




--
Sent from: http://apache-avro.679487.n3.nabble.com/Avro-Users-f679479.html