public InputStreamReader(InputStream in); /*其形参in是字节流类,而InputStreamReader的返回值是字符流类,因此InputStreamReader就可以把字节流in转换成字符流处理。*/ 在读取字符流时,如果不是来自于本地的,比如说来自于网络上某处的与本地编码方式不同的机器,那么我们在构造输入流时就不能简单地使用本地缺省的编码方式,否则读出的字符就不正确;为了正确地读出异种机上的字符,我们应该使用下述方式构造输入流对象: public InputStreamReader(InputStream in,String enc) throws UnsupportedEncodingException;/*enc是编码方式,就是从字节流到字符流进行转换时所采用的编码方式,例如 ISO8859-1,UTF-8,UTF-16等等*/例如: ir = new InputStreamReader(is, "8859_1");采用ISO 8859_1编码方式,这是一种映射到ASCII码的编码方式,可以在不同平台之间正确转换字符。 public OutputStreamWriter(OutputStream out);/*out是字节流,而OutputStreamReader是字符流 */ public OutputStreamWriter(OutputStream out,String enc) throws UnsupportedEncodingException; //enc是编码方式 InputStreamReader和OutputStreamWriter的方法:
OutputStreamWriter 是字符流通向字节流的桥梁.
一般都很少用,主要用在对文件的读写吧
InputStreamReader和OutputStreamWriter用来处理字节流,就是说可以处理一切文件。
比如说,用java处理图片的复制操作,InputStreamReader和OutputStreamWriter可以,而Reader和Writer却不可以,因为图片是字节形式而不是字符形式的
它把字符以字节数组的形式转化为对应的编码.
有时候需要用到字节数组流:ByteArrayInputStream和ByteArrayOutputStream
而你希望一次读写一个字符
显然字节流是不能满足需求的
这时候就要用的字符流
你怎么转换为字符流呢
当然需要一个处理流作为桥梁
来实现转换
InputStreamReader 和OutputStreamWriter
就是这个桥梁
不好意思,看错了,呵呵,以为是FileInputStream,不好意思
有时候我们必须把来自“字节”层次结构中的类和面向“字符”中的类结合起来;为了达到这个目的可以使用“适配器”类,InPutStreamReader可以把InputStream转化为Reader,OutPutStreamWriter可以把OutPutStream转化为Writer
在读取字符流时,如果不是来自于本地的,比如说来自于网络上某处的与本地编码方式不同的机器,那么我们在构造输入流时就不能简单地使用本地缺省的编码方式,否则读出的字符就不正确;为了正确地读出异种机上的字符,我们应该使用下述方式构造输入流对象:
public InputStreamReader(InputStream in,String enc) throws UnsupportedEncodingException;/*enc是编码方式,就是从字节流到字符流进行转换时所采用的编码方式,例如 ISO8859-1,UTF-8,UTF-16等等*/例如:
ir = new InputStreamReader(is, "8859_1");采用ISO 8859_1编码方式,这是一种映射到ASCII码的编码方式,可以在不同平台之间正确转换字符。 public OutputStreamWriter(OutputStream out);/*out是字节流,而OutputStreamReader是字符流 */ public OutputStreamWriter(OutputStream out,String enc) throws UnsupportedEncodingException; //enc是编码方式 InputStreamReader和OutputStreamWriter的方法: