'Saves data in output file
:param path: output filename
:type param: string
:param pickle: save in pickle format?
:type pickle: Boolean'

def save(self, path, pickle=False):

    if VERBOSE:
        sys.stdout.write(('Saving    data    to    %s\n' % path))
    if pickle:
        self._save_pickle(path)
    else:
        out = codecs.open(path, 'w', 'utf8')
        for (value, row_id, col_id) in self._data:
            try:
                value = unicode(value, 'utf8')
            except:
                if (not isinstance(value, unicode)):
                    value = str(value)
            try:
                row_id = unicode(row_id, 'utf8')
            except:
                if (not isinstance(row_id, unicode)):
                    row_id = str(row_id)
            try:
                col_id = unicode(col_id, 'utf8')
            except:
                if (not isinstance(col_id, unicode)):
                    col_id = str(col_id)
            s = ' DCTB '.join([value, row_id, col_id])
            out.write((s + '\n'))
        out.close()
