标题: 关于IO流中转换流的问题 [打印本页] 作者: 赵永康 时间: 2012-9-22 22:21 标题: 关于IO流中转换流的问题 各位大侠,今天我复习到了IO流,到了转换流的时候,想起了一个事情,具体就是这样的
InputStreamReader:是把字节输入流转换成字符输入流。 OutputStreamWriter:是把字符输出流转换成字节输出流。
那么在java中为什么就没有把字符流输入流转换成字节输入流呢?或者是把字节输出流转换成字符输出流呢??
以上纯属个人疑问,大侠们可以给点解释昂!!!作者: 尤圣回 时间: 2012-9-22 22:58
你好漂亮作者: 尤圣回 时间: 2012-9-22 22:58
如果是纯文本操作字符流效率要搞很多作者: 李健_8 时间: 2012-9-22 23:05
完全可以的 这个得看具体情况 字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输
由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。 字符流的传输效率比字节流的高作者: 陈琦 时间: 2012-9-22 23:06
个人感觉InputStreamReader还是建立在字节流基础上,只是在操作的时候会调用其他方法,指定字符码,转换为字符。InputStreamReader 是把字节输入流转换成字符输入流,所以有InputStreamReader 对象存在的时候肯定有字节流对象存在,所以感觉没必要。如果一定要转换的话可以通过getByte();方法并指定相同的charset得来。作者: 程振 时间: 2012-9-22 23:10
下面是java doc关于InputStreamReader的解释:
An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified charset. The charset that it uses may be specified by name or may be given explicitly, or the platform's default charset may be accepted.
Each invocation of one of an InputStreamReader's read() methods may cause one or more bytes to be read from the underlying byte-input stream. To enable the efficient conversion of bytes to characters, more bytes may be read ahead from the underlying stream than are necessary to satisfy the current read operation.
For top efficiency, consider wrapping an InputStreamReader within a BufferedReader. For example:
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));