JAVA教程第四讲Java的例外处理和I_O流4.5
文章作者 100test 发表时间 2007:03:10 18:42:36
来源 100Test.Com百考试题网
4.5 文件处理
  I/O处理中,最常见的是对文件的操作,java.io包中有关文件处理的类有:File、FileInputStream、FileOutputStream、RamdomAccessFile和FileDescriptor;接口有:FilenameFilter。 
4.5.1 文件描述
  类File提供了一种与机器无关的方式来描述一个文件对象的属性。下面我们介绍类File中提供的各种方法。
 ◇ 文件或目录的生成
  public File(String path);/*如果path是实际存在的路径,则该File对象
    /*表示的是目录;如果path是文件名,则该File对象表示的是文件。*/
  public File(String path,String name);//path是路径名,name是文件名
  public File(File dir,String name);//dir是路径名,name是文件名
 ◇ 文件名的处理
  String getName( ); //得到一个文件的名称(不包括路径)
  String getPath( ); //得到一个文件的路径名
  String getAbsolutePath( );//得到一个文件的绝对路径名
  String getParent( ); //得到一个文件的上一级目录名
  String renameTo(File newName). //将当前文件名更名为给定文件的
                   完整路径
 ◇ 文件属性测试
  boolean exists( ); //测试当前File对象所指示的文件是否存在
  boolean canWrite( );//测试当前文件是否可写
  boolean canRead( );//测试当前文件是否可读
  boolean isFile( ); //测试当前文件是否是文件(不是目录)
  boolean isDirectory( ); //测试当前文件是否是目录
 ◇ 普通文件信息和工具
  long lastModified( ).//得到文件最近一次修改的时间
  long length( ). //得到文件的长度,以字节为单位
  boolean 0delete( ). //删除当前文件
 ◇ 目录操作
  boolean mkdir( ). //根据当前对象生成一个由该对象指定的路径
  String list( ). //列出当前目录下的文件
 【例4-3】
  import java.io.*. //引入java.io包中所有的类
  public class FileFilterTest{
    public static void main(String args[]){
     File dir=new File("d://ex"). //用File 对象表示一个目录
     Filter filter=new Filter("java"). //生成一个名为java的过滤器
     System.out.println("list java files in directory " dir).
     String files[]=dir.list(filter). //列出目录dir下,文件后缀名
                       为java的所有文件
     for(int i=0.i      File f=new File(dir,files[i]). //为目录dir 下的文件或目录
                       创建一个File 对象
       if(f.isFile()) //如果该对象为后缀为java的文件,
                则打印文件名
        System.out.println("file " f).
       else 
        System.out.println("sub directory " f ). //如果是目录
                             则打印目录名
     }
    }
   }
   class Filter implements FilenameFilter{
    String extent.
    Filter(String extent){
     this.extent=extent.
    }
    public boolean accept(File dir,String name){
     return name.endsWith("." extent). //返回文件的后缀名
    }
   }