Java写文件

Java写文件有三种常用的方式,分别是用FileOutputStream、BufferedOutputStream和FileWriter
其中,FileWriter的执行速度最快,BufferedOutputStream次之,FileOutputStream最慢
三种方法的实现方式如下:

FileOutputStream fileOutputStream = null;
try{
    fileOutputStream = new FileOutputStream(new File("..."));
    fileOutputStream.write("xavier".getByte());
    fileOutputStream.close();
} catch (final IOException e) {
    pass;
} finally {
    if (fileOutputStream != null)
        try {
            fileOutputStream.close();
        } catch (final IOException e){
            e.printStackTrace();
        }
}
FileOutputStream fileOutputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try{
    fileOutputStream = new FileOutputStream(new File("..."));
    bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
    bufferedOutputStream .write("xavier".getByte());
    bufferedOutputStream.flush();
    fileOutputStream.close();
    bufferedOutputStream.close;
} catch (final IOException e) {
    pass;
} finally {
    try {
        if (fileOutputStream != null)
            fileOutputStream.close();
        if (bufferedOutputStream!= null)
            bufferedOutputStream.close();
    } catch (final IOException e){
        e.printStackTrace();
    }
}
FileWriter fileWriter = null;
try{
    fileWriter = new FileWriter (new File("..."));
    fileWriter.write("xavier");
    fileWriter .close();
} catch (final IOException e) {
    pass;
} finally {
    if (fileWriter != null)
        try {
            fileWriter .close();
        } catch (final IOException e){
            e.printStackTrace();
        }
}

如上述,三种方法,论性价比而言,肯定是FileWriter最好用,不仅速度快,而且写起来也方便,更加不需要将String类型转换为Byte进行传入

但是FileWriter有一个缺点,他会使用系统默认的编码方式进行文件写入,而我们无法更改;而当我们使用FileOutputStream或BufferedOutputStream时,当转换String为Byte类型时,可以使用String.getByte(charsetName)方法转换编码方式。

最容易出bug的就是在Windows下使用FileWriter,写入文件时保存的GBK编码,而很多时候,GBK编码会出现乱码,所以最好的解决方案是用BufferedOutputStream,在将String转换为Byte时使用getByte(“utf-8”),这样子不仅不会出现乱码的问题,写入的速度也不会比FileWriter慢多少。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值