增加简单的streambuf支持
改为使用std::error_code
修正一个bug