Java写文件有三种常用的方式,分别是用FileOutputStream、BufferedOutputStream和FileWriter
其中,FileWriter的执行速度最快,BufferedOutputStream次之,FileOutputStream最慢
三种方法的实现方式如下:
1 | FileOutputStream fileOutputStream = null; |
1 | FileOutputStream fileOutputStream = null; |
1 | FileWriter fileWriter = null; |
如上述,三种方法,论性价比而言,肯定是FileWriter最好用,不仅速度快,而且写起来也方便,更加不需要将String类型转换为Byte进行传入
但是FileWriter有一个缺点,他会使用系统默认的编码方式进行文件写入,而我们无法更改;而当我们使用FileOutputStream或BufferedOutputStream时,当转换String为Byte类型时,可以使用String.getByte(charsetName)方法转换编码方式。
最容易出bug的就是在Windows下使用FileWriter,写入文件时保存的GBK编码,而很多时候,GBK编码会出现乱码,所以最好的解决方案是用BufferedOutputStream,在将String转换为Byte时使用getByte(“utf-8”),这样子不仅不会出现乱码的问题,写入的速度也不会比FileWriter慢多少。