IO包

    java.io.* 包

    1、概述

        这个包中,主要有  文件类

                File类    这个类负责进行文件的外姓操作;

                RandomAccessFile类

                       这个类负责进行文件的内容操作。

        和输入、输出类构成。

XXXInputStream 
                     负责某一个数据源数据的输入。 
                 XXXOuputStream 
                     负责某一个数据源数据的输出。

2、文件类
        File类   Java基础中  第二重要的类

        所有的方法都需要熟练掌握

File(File parent, String child) 
         File(String pathname) 
         File(String parent, String child) 
         File(URI uri) 
       new File(new File("d:\\"),"abc"); 
         new File("d:\\abc\\"); 
          new File("d:\\aaa\\bbb","abc"); 
           new File("http://www.sohu.com/aaa/bbb/ccc/33.txt"); 
         File   f = new File("d:\\abc\\");

            代表创建一个文件对象 f   该对象 代表d:\\abc\\  这个东西;

            东西   可以是 文件   也可以是文件夹。

        其它方法       

f.craeteNewFile();//创建对应的文件; 
             f.mkdir();  创建对应的文件夹;,如果父目录不存在,不创建 
             f.mkdirs(); //创建对应的文件夹 ,如果父目录不存在, 
                一并都创建。 
             f.canread()//判断是否可读; 
             f.canWrite()//判断是否可写; 
           f.delete()//   删除对应的东西,如果是文件,直接删除,如果是

                文件夹,则文件夹必须为空,才能删除;

f.deleteOnExit()  //程序结束删除; 
          f.exists()    //判断对应的 东西  是否存在; 
           f.getName()   //得到文件名 或者文件夹名字         
             f.getParent()  //获得上一级名字 
             f.getParentFile()//获得上一级对象 
           f.isAbsolute() //判断 对应的东西  是否绝对 
             f. isFile()// 判断对应的东西是否为文件 
           f.isDirectory()//判断对应的东西是否为文件夹 
             long  x = f.lastModified() //获得该文件最后修改时间

                代表的是从1970:01:01:00:00:00:000  到创建
                时间的时间差;

                表达时间用  值  更有效率

f.length()  //获得文件的长度 
             f.list()//得到 文件夹中所有的  名字 
             f.listFile()//得到文件夹所有的 对象 
             File.listRoots()//得到该硬盘所有的分区 对象   
             f.getAbsolutePath()//得到该对象的绝对路径

    案例1 、2
            
    硬盘扫描

    硬盘删除
                         
3、RandomAccessFile类
              
        这个类  主要用来 操作文件的内容

            学习创建

RandomAccessFile(File file, String mode) 
             RandomAccessFile(String name, String mode) 
           new RandomAccessFile(new File("d:\\aaa.txt"),"r"); 
             new RandomAccessFile(d:\\aaa.txt","rw");

        学习方法

read();      从文件中读取一个字节 
           int length = read(byte[] bb) ;  从文件中读取一筐字节 
        int length = read(byte [] ,int start,ing count);从文件中读取一部分筐字节

                如果结果是 -1表示文件结束
                length代表真实的读取数量

write(int x); 
            write(byte[] bb); 
             write(byte[] bb,int start,int length);

            两种跳

seek(n);  从头跳 
             skipBytes(n);  从当前位置跳

        案例:

            日志器
                
            读写效率 基本由容器的大小确定;

            理解文件