字符流 InputStreamReader&OutputStreamWriter

字符流
读写单位一次一个字符
Reader结尾:字符输入流
Writer结尾:字符输出流

InputStreamReader:字节输入流
OutputStreamWriter:字节输出流

OutputStreamWriter有一个构造方法可以传入编码集

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * 字符输出流
 * OutputStreamWriter
 * 以字符为单位写数据
 *
 */
public class WriterDemo {

	public static void main(String[] args) throws IOException {
		FileOutputStream fos=new FileOutputStream("char.txt");
		BufferedOutputStream bos=new BufferedOutputStream(fos);
		/**
		 * 将缓冲输出流转换为字符输出流
		 */
		//重载构造方法,传入给定的编码集对字符进行字节转换
		OutputStreamWriter writer=new OutputStreamWriter(bos,"UTF-8");
		/**
		 * writer(char[] chrs):一次性写出一个字符数组
		 * writer(int chr):一次性写一个字符(2个字节)
		 * writer(String str):一次将字符串写出.
		 */
		writer.write('你');//写int值的低16位
		writer.write("好,大家好!");
		writer.close();
		
	}

}

读取

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 字符输入流
 * InputStreamReader
 * 以字符为单位读取数据
 * @author Administrator
 *
 */
public class ReaderDemo {

	public static void main(String[] args) throws IOException {
		FileInputStream fis=new FileInputStream("char.txt");
		/*
		 * 将字节输入流转换为字符输入流
		 */
		BufferedInputStream bis=new BufferedInputStream(fis);
		//使用重载方法,用UTF-8来解码, 使用windows默认GBK会导致乱码
		InputStreamReader reader=new InputStreamReader(bis,"UTF-8");
		for(int chr=-1;;){
			if((chr=reader.read())!=-1){
				System.out.print((char)chr);
			}else{break;}
		}
		reader.close();
		

	}

}

数据源 DataSource

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值