黑马程序员技术交流社区
标题:
OutputStreamWriter 是字符流通往字节流的桥梁 这个怎么理解
[打印本页]
作者:
陈波
时间:
2012-5-10 22:09
标题:
OutputStreamWriter 是字符流通往字节流的桥梁 这个怎么理解
public static void main(String[] args) throws IOException
{
InputStream in = System.in;
InputStreamReader isr = new InputStreamReader(in);
BufferedReader bufr = new BufferedReader(isr);
OutputStream out = System.out;
OutputStreamWriter osw = new OutputStreamWriter(out);//
OutputStreamWriter 不是字符流通往字节流的桥梁吗 为什么还是关联的字节流呢?
BufferedWriter bufw = new BufferedWriter(osw);
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufr.close();
}
作者:
黄坚声
时间:
2012-5-10 22:29
哥们,你问的问题有点模糊,但是我也能明白你问什么。理解新手!
双胞胎:InputStreamReader和OutputStreamWriter用于字节数据到字符数据之间的转换。
InputStreamReader需要和InputStream套接
OutputStreamWriter需要和OutputStream套接
因为字符流的底层就是字节流。
作者:
金肖
时间:
2012-5-10 23:55
可使用指定的 charset 将要写入流中的字符编码成字节。
它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。
在写入底层输出流之前,得到的这些字节将在缓冲区中累积。
为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。
作者:
何万县
时间:
2012-5-11 00:09
兄弟,其实就是把字节流转换为字符流的类,其他的都都是。。。不说了
作者:
徐然
时间:
2012-5-11 01:02
你也说了OutputStreamWriter 是字符流通往字节流的桥梁,桥梁就是桥梁,不是桥的两端
通俗一点讲,它就是把字节流转换成字符流
既然他是桥梁,转换字节流的,那你是不是要给他一个字节流,它才能转换啊
你不给他他可不知道怎么转换
作者:
陈忠
时间:
2012-5-11 01:46
用大白话可能更容易理解。
InputStreamReader和OutputStreamReader,都叫字符转化流。可以指定字符的编码
InputStreamReader输入流转化,即将从源输入的字节流转换成字符流,所以接收的是Inputstream对象
OutputStreamWriter输出流,即将源输入的字符流转换成字节流。最终以字节流的形式输出,那么接收的对象依然还是字节流OutputStream。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2