J2SE 流

2016-03-24  本文已影响0人  BigZoo

Java流式输入输出原理

输入流(InputStream):程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道。输入流不关心数据源来自何种设备(键盘,文件,网络)。

输出流:(OutputStream):程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。输出流不关心数据的目的是何种设备(键盘,文件,网络)。

Java流类的分类

Java.io包中定义了多个流类型来实现输入/输出功能。按数据流的方向可以分为输出流和输入流。按处理数据=单位不同可以分为字节流和字符流。按照功能不同可以分为节点流和处理流。Java.io包内都分别继承自一下四种抽象流类型。

节点流和处理流

节点流:是可以从一个特定的数据源(节点)读写数据。

处理流:是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更强大的读写功能。

输入/输出流类

InputStream:继承自InputStream的流都是用于向程序中输入数据,且数据的单位为字节(8bit),下图中深色为节点流,浅色为处理流。

InputStream的基本方法:

OutputStream:继承自OutputStream的流都是用于向程序中输出数据,且数据的单位为字节(8bit),下图中深色为节点流,浅色为处理流。

OutputStream的基本方法(调用出close方法之前,先调用flush方法,flush方法的意思是先把缓存区里的数据写出去然后在进行关闭)

Reader:继承自Reader的流都是用于向程序中输入数据,且数据的单位为字符(16bit),下图中深色为节点流,浅色为处理流。

Reader的基本方法

Writer:继承自Writer的流都是用于向程序中输出数据,且数据的单位为字符(16bit),下图中深色为节点流,浅色为处理流。

Writer的基本方法(调用出close方法之前,先调用flush方法,flush方法的意思是先把缓存区里的数据写出去然后在进行关闭)

节点流类型(结尾Stream的是字节流,结尾是Reader/Writer的是字符流)

FileInprtStream例子

控制台输出结果

FileOutputStream例子

控制台输出结果

查找写入文件地址

FileReader例子

控制台输出结果

FileWriter例子

控制台输出结果

查找写入文件的地址

处理流类型

缓冲流

缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率。缓冲流分为四种:BufferedReader,BufferedWriter,BufferedInputStream,BufferedOutputStream.其常用方法:

注意事项

BufferedInputStream例子

控制台输出结果

BufferedReader/BufferedWriter例子

控制台输出结果

查找写入文件的地址

转换流

OutputStreamWriter例子

控制台输出结果

查找写入文件的地址(有追加)

查找写入文件的地址(没有追加)

InputStreamReader例子

控制台输出结果

数据流

DataOutputStream,DataInputStream例子

控制台输出结果

Print流(输出/打印流,Print没有输入流)

PrintWriter例子

控制台输出结果

查找写入文件的地址

Object流

Object流例子

控制台输出结果(有transient修饰的)

控制台输出结果(没有transient修饰的)

serializable接口和externallzable接口的区别

serializable接口:用来标记类的对象可以被实例化(不可控制)

externallzable接口:可控实例化(不常用)

上一篇下一篇

猜你喜欢

热点阅读