File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件长度、文件读写权限等,不涉及对文件的读写操作。

  一、File类的构造方法有:

  File(String filename);   //filename为文件名,该文件与当前应用程序在同一目录中

  File(String directoryPath,String filename); //directoryPath是文件路径

  File(file f,String filename); //f是指定成目录的一个文件

  二、文件属性

  1.public String getName(); //获取文件的名字

  2.public boolean canRead(); //判断文件是否可读

  3.public boolean canWrite(); //判断文件是否可写

  4.public boolean exits();  //判断文件是否存在

  5.public ling length();   //获取文件长度

  6.public String getAbsolutePath(); //获取文件的绝对路径

  7.public String getParent(); //获取文件的父目录

  8.public boolean isFile(); //判断文件是否是一个正常文件而不是目录

  9.public boolean isDirectory(); //判断文件是否一个目录

  10.public boolean isHidden();   //判断文件是否隐藏文件

  11.public logn lastModified();  //文件最后修改的时间(从1990年午夜至文件最后修改时刻的毫秒数)

  三、目录

  1.创建目录

  public boolean mkdir(); //创建目录

  2.列出目录中的文件

   如果File对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录:

  public String[] list(); //用字符串形式返回

  public File[] listFiles(); //用File对象形式返回

  列出指定类型的文件:

  public String[] list(FilenameFilter obj); //字符串形式目录下指定类型的所有文件

  public File[] listFiles(FilenameFilter obj); //用File对象形式返回目录下指定类型的所有文件

   其中,FilenameFilter是一个接口,该接口有一个方法:

  public boolean accept(File dir,String name); //当向list方法传递一个实现该接口的对象时,dir调用list方法在列出文件时,将调用accept方法检查该文件name是否符合accept方法指定的目录和文件名字要求。

该类是从InputStream中派生出来的简单输入类。

  一、构造方法

  FileInputStream(String name); //使用给定的文件名创建对象

  FileInputStream(File file);   //使用File对象创建FileInputStream对象

  二、读取文件

  1.使用文件输入流读取文件

  FileInuputStream istream=new FileInputStream("myfile.dat");

     或:

  File f=new File("myfile.dat");

   FileInputStream istream=new FileInputStream(f);

   构造方法可能会产生异常IOException,故为了把一个文件输入流对象与一个文件关联起来,需:

  try { FileInputStream ins=new FileInputStream("myfile.dat");}

   catch (IOException e){ System.out.println("File read error:"+e);}

  2.从输入流中读取字节

  int read(); //从输入流中读取单个字节数据(0~255),如到输入流末尾则返回-1

   int read(byte b[]); //读多个字节

   int read(byte b[],int off,int len);

  3.关闭流

  Java在程序结束时自动关闭所有打开的流,但显式关闭任何打开的流是一个好习惯。

  close();


该类提供了基本的文件写入功能,顺序写。

  FileOutputStream(String name); //用给定的文件名创建对象

  FileOutputStream(File file);   //用File类创建对象

  public void write(byte b[]);   //写b.length个字节到输出流

  public void write(byte b[],int off,int len);  //从off开始写len个字节到输出流

分别是Reader类和Writer类的子类。

  FileInputStream类使用字节读取文件时不能直接操作Unicode字符,读取汉字(2字节)时可能会出现乱码。

  FileReader in=new FileReader("Example20)1.java"); //构造方法

  read();

   write(String s,int off,int len);

   BufferedReader类:

  BufferedReader(Reader in);

   readLine();   //读取一行