JAVA I/O系统

       一、Java I/O系统的定义:统一放在Java.io包和Java.nio包中的类。

            1, 流<stream>的概念:当程序需要读取数据的时候,就会开启 一个通向源设备的流,这个数据源设备可以是文件,内存和网络连接。

            2,流的基本特性:流质和方向。

            3,流的分类:

             a 按数据流的方向分:输入流(从数据源读取数据到程序中,io包中的输入流都继承自InputStream或Reader。);

                                               输出流(将数据从程序写入数据目的地,io包中的输出流都继承自OutputStream或Writer。

             b 按处理数据的最小单位的不同分:字节流(最小单位是byte,io包中的字节流都继承自抽象类InputStream或OutputStream。);

                                                                   字符流(最小单位是char,io包中的字节流都继承自抽象类Reader或Writer。)

            注:读写文字型的数据时通过字符流更有效率,更方便。

            c 按照流的功能分:节点流<低级流>(可以直接向一个特定的数据源读或写数据的流);

                                     处理流<高级流>(不直接连接到设备,而是连接在已存在的流<节点流或处理流>之上)

                 注:所有I/O类中的具体类都继承自四个抽象类:InputStream,OutputStream,Reader,Writer。

       二、所有I/O操作的步骤:

         1,建立流

         2、操作流

         3、关闭流

       三、文件类(File)可以操作文件,但它不是流,它不能操作文件的内容。

       四、字节流:用于处理二进制文件。

        1、高级字节流:

          a、按功能分:

             过滤流类(缓冲流,数据流,计数,推回输入流,打印输出流);

             对象流(序列化,反序列化);

       注:为了实现对象序列化,对应的类必须实现java.io.serializable接口;transient所修饰的属性不能被序列化。

             合并;

             字符流;

        五、可用以下方法解决,transient所修饰的属性不能被序列化的问题:

                第一步:

            public void readObject(java.io.ObjectInputStream in)throws IOException,classNotFoundException{

                    //内容                      

                       }

               第二步:

            public void writeObject(java.io.ObjectOutputStream out)throws IOException{

                    //内容                      

 

                       }

 

     

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。