A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王溢君 中级黑马   /  2013-1-30 01:44  /  1606 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. InputStream in = System.in;
  2. InputStreamReader isr = new InputStreamReader(in);
  3. BufferedReader bufr = new BufferedReader(isr);
复制代码
我们知道InputStreamReader 字节流转换成字符流时,可以使用字符流的方法。。。那么。。。
  1. OutputStream out = System.out;
  2.                
  3.                 OutputStreamWriter osw = new OutputStreamWriter(out);

  4.                 BufferedWriter bufw = new BufferedWriter(osw);
复制代码
这个OutputStreamWriter不是字符流通向字节流的桥梁吗?怎么还是使用的是字符流的方法?
感觉还是把字节转成字符操作?

谁来说说???字符流怎么使用字节流的方法?


评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

2 个回复

倒序浏览
InputStreamReader,OutputStreamWriter,实际上是通过byte[]和String来关联
在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public   String(byte   bytes[],   String   charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[]                 String.getBytes(String   charsetName)
也是一样的道理 ,charsetName就是指编码格式

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
字节流与字符流主要的区别是他们的的处理方式一个是以流的方式输入和输出的 一个是以字节的方式输入输出字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的在从字节流转化为字符流时,实际上就是byte[]转化为String时,public String(byte bytes[], String charsetName)有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang而在字符流转化为字节流时,实际上是String转化为byte[]时,byte[]    String.getBytes(String charsetName)也是一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马