【java】字符流

字符串的解码编码问题
 getEncoding() 获取此流使用的字符编码的名称。

(一般中文使用GBK编码 国际通用为UTF-8)
 编码 
* byte[] getBytes() 使用平台默认的字符集将该String编码为一系列字节,将结果存储到新的字节数组中
* byte[] getBytes(String charsetName) 使用指定的字符集将该String编码为一系列字节,将结果存储到新的字节数组中
 解码
 *String(byte[] bytes) 通过平台默认的字符集解码指定的字节数组来构造新的String
 *String(byte[] bytes,String charsetName) 通过指定的字符集解码指定的字节数组来构造新的String

字符流输入流InputStreamReader 与 字符输出流 OutputStreamWriter的构造方法
* OutputStreamWriter(OutputStream out)
* OutputStreamWriter(OutputStream out,String charsetName)
 

字符流写数据的五种方式
 * void write(int c) 写一个字符
 * void write(char[] cbuf) 写入一个字符数组
 * void write(char[]cbuf,int off,int len) 写入字符数组的一部分
 * void write(String str) 写入一个字符串
 * void write(String str,int off,int len) 写入一个字符串的一部分


 字符流读数据的两种方式
 * int read() 一次读一个字符数据
 * int read(char[] cbuf) 一次读一个字符数组数据

转换流 用于读写文件的便携类 

FileReader extends OutputStreamWriter 用于读取文件

FileWrite extends InputStreamReader 用于写入文件

字符流实例

实际上,字符流就是字节流与编码表的结合;字节流默认不使用缓冲区,字符流使用缓冲区。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Ooutputstreamwrite {

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

		OutputStreamWriter o= new OutputStreamWriter(new FileOutputStream("D:\\FILE\\a.txt"),"UTF-8");
		/* 构造方法
		 * OutputStreamWriter(OutputStream out)
		 * OutputStreamWriter(OutputStream out,String charsetName) */
		InputStreamReader i= new InputStreamReader(new FileInputStream("D:\\FILE\\java.txt"),"UTF-8");

		char[]  b=new char[100];
		while(i.read(b)!=-1) {
			o.write(b);
		}
		o.close();
		i.close();

	}

}

 字符缓冲流 BufferedReader 与 BufferedWriter

回顾一下字节缓冲流,二者类似

BufferedReader 特有方法

public String readLine() 读一行文字,结构包括行的内容的字符串,不包括任何的行终止符,如果到达流的结尾,则返回null

BufferedWriter 特有方法

void newLine() 写一行行分隔符,行分隔符字符串由系统属性定义

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛酸菜吃鸭子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值