Java学习笔记——IO流基础知识点整理

      IO 流

        Input / Output 流(Stream)

        1,概念:  类比水流。 数据从一个位置, 流向另一个位置。 数据的传输。

        2,分类:<重点>

                流向  :  以程序为立场

                        输入流:  数据进入程序

                                                一般情况读入数据

                        输出流:  数据从程序中出去(保存到本地, 上传数据)

                                                写出

                单位

                        Bit        (位), 0,1        
                        Byte(字节), 8个位  

                        字节流:  每次操作的是1个字节 

                        字符流:  每次操作的是字符  , 2个字节, 16位  (操作的中文)



                功能

                        节点流: 直接接触数据源的流


                        处理流: 也叫过滤流, 没有直接接触数据, 而是嵌套在别的流之上

                
        3, 4大基类(父类)流

                InputStream                 字节输入流

                OutputStream     字节输出流

                Reader                         字符输入流

                Writer                         字符的输出流


   4, 流的操作步骤

                1, 确定数据源

                2, 确定流向, 确定子类

                3, 操作流  

                4, 关闭流

   5, InputStream 读的操作

                read()         
                
                                int, 用于读取一个字节, 返回值是读取数据的本身, 如果读取到末尾, 返回-1



        *        read(byte[] b)

                                int , 用于读取数据, 最多读取的长度是b.length的长度,  数据存入数组中

                                          返回值是实际读取到的内容的长度  len

                                          如果读取到末尾, 返回-1


                read(byte[] , int off,int len)

                                int , 用于读取数据,最多的读取len个, 数据也是存入到数组中, 
                                
                                                从下标为off的位置开始存储,

                                                返回值是实际读取的长度  len

                                                如果读取到末尾, 返回-1



        6, OutputStream  写的操作
        
                    保存数据到本地文件中, 如果文件不存在, 输出流会自定创建一个文件, 然后在写出内容

                        但是如果目录不存在, 那么会抛出异常

                        write(int)  

                                                void , 将参数所表示的内容写出, 该方法执行一次, 表示写出了一个字节


                *        write(byte[])

                                                void,  将参数所表示的字节数组中的数据, 全部写出



                        write(byte[] b,int off,int len)

                                                void , 将参赛所表示的字节数据中的数据, 部分写出, 

                                                从数组的下标为off开始, 写len长度


        String 类

                字节数组:getBytes()   byte[]

                字符数组:toCharArray()  char[]


        

   6, 字符流    ---  以字符为单位  Reader

                read()
                                
                           int , 读入一个字符, 返回值是读取的数据, 读到末尾返回-1

                read(char[] cr)

                                int , 一次读取多个字符, 最多读取到的是数组长度的个数, 实际读到的长度,
                                
                                        是 方法的返回值 len,  数据存入数组中, 读到末尾返回-1

                read(char[] cr, int off,int len)

                                int , 一次读入多个字符, 最多读取len的长度, 实际读入的数量是方法的返回值

                                从off下标开始存入数组中,  如果读取到末尾返回-1


        7, 字符流     --  以字符为单位   写出数据   Writer

猜你喜欢

转载自www.cnblogs.com/CQqf/p/10855231.html