Java基础_字节流与字符流

Day_14 字节流与字符流

一.BigDecimal And BigInteger
1.BigDecimal:用来解决精确的浮点运算。
2.BigInteger:用来解决超大的整数运算。

二.IO简介
1.定义:in/out相对于程序而言的输入(读取)和输出(写出)的过程。在Java中,根据处理的数据单位不同,分为字节流和字符流。

2.流的概念:数据的读写抽象成数据,在管道中流动,流只能单方向流动,输入流用来读取in,输出流用来写出out,数据只能从头到尾顺序的读写一次。

三.文件流
1.定义:封装一个磁盘路径字符串,对这个路径可以执行一次操作,可以用来封装文件路径,文件夹路径,以及不存在的路径。

2.创建对象:
File(String pathname),通过将给定路径名字符串转换为抽象路径来创建一个新File实例。

四.字节流
1.定义:字节流是由字节组成的,字符流是由字符组成的。Java里字符由两个字节组成,字节流是最基本的。所有的InputStream和OutputStream的子类都是,主要用于处理二进制数据。

2.字节流读取:流式传输指将整个音频和视频及三维媒体等多媒体文件通过特定的压缩方式解析成一个个解压包,由视频服务器向用户计算机顺序或者实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需要经过几秒或者几十秒后的启动延时即可在用户的计算机上利用解压设备对压缩的A/V,3D等多媒体文件进行播放和观看,此时多媒体文件的剩余部分将在后台的服务器内继续下载。

3.InputStream抽象类
定义:此抽象类表示字节输出流的所有类的超类。

4.FileInputStream子类
定义:直接插在文件上,直接读取文件数据。

5.BufferedInputStream子类
定义:为另一个输入流添加一些功能,即缓冲输入以及支持mark和rest方法的能力。在创建BufferedInputStream时,会创建一个内部缓冲区数组,默认8M大小,在读取或跳过流中的字节时,可以根据需要从包含的输入流中再次填充该内部缓冲区,一次填充多个字节。

6.OutputStream抽象类:
定义:此抽象类是表示输出字节流的所有类的超类,输出流接收输出字节并将这些字节发送到某个接收器。

7.FileOutputStream子类
定义:直接插在文件上,直接写出文件数据。

8.BufferedOutputStream子类
定义:该类实现缓冲的输出流,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

五.字符流
1.Reader抽象类,用于读取字符流的抽象类。

2.FileReader子类,用来读取字符文件的便捷类,此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要指定这些值,可以先在FileInputStream上构造一个InputStreamReader。

3.InputStreamReader子类,是字节流通向字符流的桥梁,他使用指定的charset读取读取字节将其解码为字符。

4.BufferedReader子类,从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取。可以指定缓冲区的大小,或者使用默认的大小,大多数情况下,默认值就已经足够大了。

5.Writer抽象类,用于写入字符流的抽象类。

6.FileWriter子类,用来写入字符文件的便捷类,此类的构造方法假定默认字符编码和默认缓冲区大小都是可接受的,要自己指定这些值,可以先在FileOutputStream上构造一个OutputstreamWriter。

7.OutputStreamWriter子类,OutputStreamWriter是字符流通向字节流的的桥梁,可以使用指定的charset将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显示给定,否则将接受平台默认的字符集。

8.BufferedWriter子类,将文本写入字符输出流,缓冲各个字符,从而提供单个字符,数组和字符串的高效写入。可以指定缓冲区的大小,或者接受默认的大小,在大多数情况下,默认值就已经足够大了。

猜你喜欢

转载自blog.csdn.net/weixin_41858806/article/details/112198354