java 缓冲字符流_JAVA——缓冲流(字符流的Write 方法)

package com.cskaoyan.io02.tranfer.writer;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.Writer;

/**

* @author [email protected]

* @version 1.0

*

* Writer写字符数据的方法:

*

public void write(int c)

写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。

public void write(char[] cbuf)

向字符输出流中写入整个字符数组的多个字符数据

public void write(char[] cbuf,int off,int len)

向字符输出流中写入整个字符数组的, 一部分字符数据

public void write(String str)

向字符输出流中,写入一个字符串

public void write(String str,int off,int len)

向字符输出流中,写入一个字符串的一部分字符序列

所有的字符流,自带(小)缓冲区,是在编解码的时候来使用的

1. 所以,当我们向字符流写入少量数据的时候,数据有可能存在于自带的缓冲区中,还没有写入底层流

2. 为了保证,即使是少量字符数据,也能及时将少量字符数据写入,底层字节流。

a. close() 关闭此流,但要先刷新它

b. flush() 刷新该流的缓冲

*/

public class Demo2 {

public static void main(String[] args) throws IOException {

String s = "你好, 女神";

//1. 创建字符输出流对象

FileOutputStream fos = new FileOutputStream("a.txt", true);

Writer writer = new OutputStreamWriter(fos);

//向文件中写入中文字符数据 public void write(int c)

char[] chars = s.toCharArray();

//for (int i = 0; i < chars.length; i++) {

// writer.write(chars[i]);

//}

// public void write(char[] cbuf)

//writer.write(chars);

// public void write(char[] cbuf,int off,int len)

//writer.write(chars, 0, chars.length);

//public void write(String str)

//writer.write(s);

// public void write(String str,int off,int len)

writer.write(s, 0, s.length());

//关闭流 关闭包装流即可

writer.close();

}

}

原文:https://www.cnblogs.com/liuluyao/p/13602916.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值