为什么之前的OutputStreamWriter需要用flush()方法?这边的FileWriter也需要用flush()方法才能写入文本文件?
需要写入,你可以在使用OutputStreamWriter或FileWriter不加入flush()方法,运行后观察被复制文件大小,你会看到不是GBK的文件,有时候复制文本为空,即没有复制东西,为0KB. 同时字符流FileWriter有可能出现漏读现象,再加上flush()方法,发现都被写入。
因为下次在使用字符流的时候一定要记得加flush()方法确保没有错误。
我的理解是,因为它是通过OutputStream包装来的,底层还是OutputStream,只不过把byte和char进行双向解析,实现一次可以读一个字符,从而有OutputStreamWriter和InputStreamWriter