重温java知识(三十八、I/O编程之三:字节流与字符流之字节流与字符流的区别)

虽然java.io包中提供“字节流”和“字符流”两类处理支持类,但是在数据传输(或者将数据保存在磁盘)时所操作的数据依然为字节数据,字符数据都是通过缓冲区进行处理后得到的内容。
两类操作的最大区别就是在于字符流使用到类缓冲区(这样更适合进行中文数据的操作),而字节流是直接进行数据处理操作。所以当使用字符输出流进行输出时就必须使用Flushable接口中提供的flush()方法强制性刷新缓冲区中的内容,否则数据将不会输出。

1、字符流输出并强制刷新缓冲区的例子:

package com.mydemo;

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

public class FileIODemo {

    public static void main(String[] args) {

        File file = new File("e:" + File.separator + "test" + File.separator + "text.txt");

        // 判断文件是否存在
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }

        try {
            // 实例化Writer类对象
            Writer writer = new FileWriter(file);

            // 输出字符串
            writer.write("测试字符流输出并强制刷新缓冲区");

            // 追加输出内容
            writer.append("\r\n厉害了,没见过的科技啊");

            /**
             * 使用flush()方法刷新缓冲区,
             * 如果不使用此方法,
             * 那么此时将不会有任何内容保存在文件中。
             */
            writer.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值