黑马程序员技术交流社区

标题: java基础第20天IO流 [打印本页]

作者: 驰马定中原    时间: 2016-5-26 22:50
标题: java基础第20天IO流
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: 主要的作用是关闭流对象,在关闭流之前会把缓冲区中的数据刷新到硬盘.
                                这个方法只能调用一次,不可以多次调用.

               

                       








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2