黑马程序员技术交流社区
标题:
一个关于写入转换流的问题???
[打印本页]
作者:
jingzhouheima
时间:
2013-8-1 14:50
标题:
一个关于写入转换流的问题???
本帖最后由 杨兴庭 于 2013-8-2 19:03 编辑
public static void main(String[] args) throws IOException
{
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));//----------------------------------问题是OutputStreamWriter是字符流转向字节流的桥梁,那么这里在
//----------------------------------存入的时候不就已经是字节了吗。但怎么就是字符流了呢?
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufr.close();
}
作者:
下雨天
时间:
2013-8-1 15:34
转换流的特点就是用字符流的方法来操作字节流,无论是读取还是写入,都是用字符流的方法来操作的
很多人都说转换流的读取是字节转字符,写入是字符转字节,这个要看你怎么理解,转换是由转换流来完成的,而不是你来完成的
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
这句话的意思:我用字符流 来读取你的字节数据
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));//
这句话的意思:我给你字符数据 你给我用字节流写
换个角度想,BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));这句话读取的结果是什么? 是一堆字符数据
在while循环中 数据一边读 一边写
本来读出来的数据就是字符数据
那么在把这些数据交给BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
这时候的数据还是字符数据,等写完的结果才是字节呢
作者:
王峰230321
时间:
2013-8-1 16:37
你能在控制台输出字节吗. ? 比如说图片MP3. 等媒体文件. 全是用字节编的. 字节流代表权威. 以为他什么都能干. .
但是控制台无论是输入还是输出. 全部都是字符形式的. . 而且字符流的专门处理字符的能力上比字节流强太多.
所以. 就是这么回事.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2