修改读取文件的方式为一次读一个字符，免去重复设置buff的复杂性；目前还没有测试文件中有错误的情况