初学者第41节之IO-InputStreamReader、OutputStreamWriter

公告通知

本公众号纯属个人公益公众号!只求能帮助到各位java初学者,公众号有一系列免费资源领取,供广大java初学者自学!也有微信交流群供大家学习讨论!!!大家可以多多关注!!!也可以对我们的文章可以多多留言,留下您的宝贵意见!!!

一、InputStreamReader类

一个inputstreamreader是桥从字节流字符流:将字节数组解码成文字使用指定的 charset。字符集,它使用可指定名称或可给予明确,或平台的默认字符集可以接受。

每次调用一个inputstreamreader的read()方法可能会导致一个或多个字节是从底层字节输入流中读取。为了使字节的有效转换为字符,更多的字节可以从底层流读取,而不是满足当前读操作的必要。

意思就是:InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

构造方法:

InputStreamReader(InputStream in) 创建一个inputstreamreader使用默认字符集。获得。//读取键盘上的数据。

InputStreamReader(InputStream in, Charset cs) 创建一个inputstreamreader使用给定的字符集。

InputStreamReader(InputStream in, CharsetDecoder dec) 创建一个inputstreamreader使用给定的字符集解码。

InputStreamReader(InputStream in, String charsetName) 创建一个inputstreamreader使用指定的字符集。

 

方法

void

close() 关闭流并释放与它相关联的任何系统资源。

String

getEncoding() 返回此流使用的字符编码的名称。

int

read() 读取单个字符。

int

read(char[] cbuf, int offset, int length) 将字符读入一个数组的一部分。

boolean

ready() 告诉是否该流已准备好阅读。

下面开始举例说明

初学者第41节之IO-InputStreamReader、OutputStreamWriter_第1张图片

这里没有使用BufferedReader从一个字符输入流中读取文本,缓冲字符,以便提供字符、数组和行的有效读取。 可以指定缓冲区大小,也可以使用默认大小。默认是足够大的用于大多数目的。这里就留到作业里面做吧。

以上还有继承父类的方法,大家可以去看看api试试,使用方式几乎一样的。

二、matchOutputStreamWriter 


一个outputstreamwriter是桥从字符流的字节流:将字符串编码为字节,使用指定的 charset。字符集,它使用可指定名称或可给予明确,或平台的默认字符集可以接受。

每次调用一个write()方法使编码转换器是在给定的字符调用(S)。将所得的字节在写入到底层输出流之前在缓冲区中积累。这个缓冲区的大小可以指定,但默认情况下,它是足够大的用于大多数目的。注意,传递给write()方法的特点是不缓冲。

 

意思就是:OutputStreamWriter 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

但是为了获得最好的效率,考虑包装outputstreamwriter在BufferedWriter从而避免频繁转换调用

构造方法

OutputStreamWriter(OutputStream out) 创建一个outputstreamwriter使用默认的字符编码。

OutputStreamWriter(OutputStream out, Charset cs) 创建一个outputstreamwriter使用给定的字符集。

OutputStreamWriter(OutputStream out,CharsetEncoder enc)创建一个outputstreamwriter使用给定的字符集编码。

OutputStreamWriter(OutputStream out,StringcharsetName)创建一个outputstreamwriter使用指定的字符集。

方法

close() 关闭流,冲洗它。

flush() 冲流。

getEncoding() 返回此流使用的字符编码的名称。

write(char[] cbuf, int off, int len) 写入一个字符数组的一部分。

write(int c) 写一个字符。

write(String str, int off, int len) 写入字符串的一部分。

 

代码演示:


初学者第41节之IO-InputStreamReader、OutputStreamWriter_第2张图片

这里使用了BufferedWriter将文本写入到字符输出流中,缓冲字符,以便提供对单个字符、数组和字符串的有效写入。 可以指定缓冲区大小,也可以接受默认大小。默认是足够大的用于大多数目的。它是和上面BufferedReader对应的。

以上还有继承父类的方法,大家可以去看看api试试,使用方式几乎一样的。

 

习题:使用OutputStreamWriter、InputStreamReader、BufferedWriter、BufferedReader来写一个文件的写入和输出。

答案公众号输入:“OutputStreamWriter” 


    扫码关注 ∣有捣乱者绕道

初学者第41节之IO-InputStreamReader、OutputStreamWriter_第3张图片

长按,识别二维码,加关注

注:本公众号纯属个人公益公众号!

不存在任何培训机构招生信息!!


你可能感兴趣的:(java初学者全集)