IO流操作与文件File操作

来源:互联网 发布:双11淘宝每年销售额 编辑:程序博客网 时间:2024/06/08 07:14

      今天讲解的是文件操作File、FileFilter过滤器的接口和RandomAccessFile随机读写操作。

一、    File类

a)      构造方法File(String path,String name); 构造方法参数可以存储一个文件名,可以只存一个文件夹,也可以是绝对路径可以是两个,前者是路径,后者是文件名。也可以是File(File 目录,String name)。

b)     静态常量  separator 和separatorChar分别表示目录之间的/ \\

c)      特有方法:getName() 返回文件对象名。 getPath()返回对象中封装的路径。 getAbsolutPath()返回绝对路径 getParent()返回父文件对象的路径名,如果是相对路径,则返回为null

getParent()返回父文件对象获得文件属性 length()返回文件自己长度 lastModfied() 返回文件最后修改的时间 可以作为Data类的参数 delete()删除目录或者文件。返回真假值 mkdir()创建目录 list() 返回子目录里所有文件的名字。 listFile()返回目录中的所有文件对象

      递归方法:public void listDir(File dir){

         System.out.println(dir.getName());

         File[] files=dir.listFiles();        

         for(int i=0;i<files.length;i++){

                   if(files[i].isFile())    //如果是文件直接输入

                            System.out.println(files[i].getName());

                   Else        //则向下个目录

                            listDir(files[i]);

         }

二、    过滤器FileFilter接口

成员方法boolean accept(Filepathname)需要从写内容。来实现过滤文件的作用。大概可以这样写

//过滤逻辑条件

       if(pathname.isDirectory())

           return false;

       //不是目录

       String filename=pathname.getName();

       int n=filename.indexOf(".");//找.的位置

       if(n==-1 || n==filename.length())//如果没有找到或者在最后找到

           return false;

       if(filename.substring(n+1).equals(externName)){//从.分割字符串与文件后缀对比。 这有漏洞 如果是以.txt.txt结束的则不能被通过。

           return true;

       }

      

       return false;

    }

三、    随机文件操作RandomAccessFile类可以对文件进行随机读写的功能

a)      构造方法 RandomAccessFile(File file,String mode);后面为模式 如”r”是只能读 “w”是只能读”rw”是能读写功能

b)      具体方法:readInt()   readDouble()等方法与WriteInt()同理。读、写UTF字符串: readUTF()、writeUTF(Stringstr);readLine()方法

c)       getFilePointer() ---得到当前的文件读取指针seek(long pos) ---把指针从开始移动到pos位置  length()---得到文件的长度(有多少个字节) setLength(long newLength)