一些改动

* 修改了语法错误和可能的漏洞
* 支持传入stream
* 添加了一些测试