use TextIOWrapper