阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第16章:字节流与字符流:课时77:字节流与字符流的区别

字节流与字符流的区别

现在通过一系列的分析已经可以清楚字节流与字符流的基本操作了,但是对于这两类依然是存在有区别的,重点来分析一下输出的处理操作。在使用OutputStream和Writer输出的最后发现都使用了close()方法进行了关闭处理。
在使用OutputStream类输出的时候如果现在没有使用close()方法关闭输出流发现内容依然可以实现正常输出,但是如果在使用Writer的时候没有使用close()方法关闭输出流,那么这个时候内容将无法进行输出,因为Writer使用到了缓冲区,当使用了close()方法的时候实际上会出现有强制刷新缓冲区的情况,所以这个时候会将内容进行输出,如果没有关闭,那么将无法进行输出操作,所以此时如果在不关闭的情况下要想将全部的内容输出可以使用flush()方法强制清空。
范例:使用Writer并强制性清空

package cn.mldn.demo;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    	File file = new File("D:" + File.separator + "hello" + File.separator + "mldn.txt") ;
    	if(file.getParentFile().exists()) {
    		file.getParentFile().mkdirs(); // 父目录必须存在
    	}
    	Writer out = new FileWriter(file);
    	String str = "www.mldn.cn\r\n";
    	out.write(str);
    	out.flush(); // 强制性刷新
    }
}

字节流在进行处理的时候并不会使用到缓冲区,而字符流会使用到缓冲区。另外使用缓冲区的字符流更加适合于进行中文数据的处理,所以在日后的程序开发之中,如果要涉及到包含有中文信息的输出一般都会使用字符流处理,但是从咖外一方面来讲,字节流和字符流的基本处理形式是相似的,由于IO很多情况下都是进行数据的传输使用(二进制)所以本次的讲解将以字节流为主。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值