A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 驰马定中原 中级黑马   /  2016-5-26 22:50  /  914 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流:
        1.分类:
                1.按流向分:
                        输入流和输出流
                2.按数据的操作类型:
                        字节流和字符流.

        2.字节流:
                InputStream:字节输入流(抽象类)
                        |--FileInputStream:文件输入流

                OutputStream:字节输出流(抽象类)
                        |-FileOutputStream:文件输出流


        3. 文件读写操作:
                (掌握)
                1.每次只读写一个字节的方式:(效率太低,一般不用,读写内容很少的时候,可以用)
                        FileInputStream fis = new FileInputStream("yyy.txt");
                        FileOutputStream fos=new FileOutputStream("xxx.txt");
                        int b;
                        while((b=fis.read())!=-1){
                                fos.write(b);
                        }
                        fos.close();
                        fis.close();
               
                2.定义一个跟文件一样大小的数组,一次读入整个文件到数组中,再一次性写出去
                        不推荐这种方式,代码略.

                (掌握)
                3.定义一个小数组,每次读入一个数组大小的内容,再写出到文件中,直到读完为止.
                        FileInputStream fis = new FileInputStream("yyy.txt");
                        FileOutputStream fos=new FileOutputStream("xxx.txt");
                        byte[] arr=new byte[1024];
                        int len;
                        while((len=fis.read(arr))!=-1){
                                fos.write(arr,0,len);
                        }
                        fos.close();
                        fis.close();

                4.使用带缓冲区的流对象:
                        BufferedInputStream
                        BufferedOutputStream
                        这两个对象的用法跟上面一样
                        不同的地方在于,读写一个字节时,效率非常高
                        如果两种方式都是使用小数组读写多个字节,建议使用FileInputStream和FileOutputStream.

                5.flush方法和close方法的区别:       
                        1.flush: 把缓冲区中的数据刷新到硬盘上.可以多次调用这个方法
                        2.close: 主要的作用是关闭流对象,在关闭流之前会把缓冲区中的数据刷新到硬盘.
                                这个方法只能调用一次,不可以多次调用.

               

                       



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马