J2SE 流

作者: BigZoo | 来源:发表于2016-03-24 01:23 被阅读0次

    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接口:可控实例化(不常用)

    相关文章

      网友评论

          本文标题:J2SE 流

          本文链接:https://www.haomeiwen.com/subject/ppuxlttx.html