天天看点

Java---File文件操作类

IO的核心组成就是五个类(File、OutputStream、InputStream、Reader、Writer)一个接口(Serializable)

在Java.io包之中,File类是唯一一个与文件本身操作(创建、删除、取得信息..)有关的程序类 

1.File类的使用

java.io.File类是一个普通的类,直接产生实例化对象即可。如果要实例化对象则需要使用到两个构造方法:

  • public File(String pathname) ;
  • public File(String parent, String child),设置父路径和子路径。 

创建一个新文件

public boolean createNewFile() throws IOException  //检查异常
           

范例:创建新文件

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
    public static void main(String[] args) {
       // 定义要操作的文件路径
       File file = new File("/Users/yuisama/Desktop/TestIO.java");
       try {
           file.createNewFile();
       } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
}
           

File类只是创建文件本身,但是对于其内容并不做处理。

判断文件是否存在:

public boolean exists()
           

删除文件

public boolean delete()
           

2.目录操作

File类中关于目录有如下方法:

取得父路径或父File对象:

public String getParent()
public File getParentFile()
           

若想创建父路径,此时最好取得父路径的File类对象。

创建目录(无论有多少级父目录,都会创建)

public boolean mkdirs()
           

范例:Java文件目录操作

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
      public static void main(String[] args) throws IOException {
      // separator由不同操作系统下的JVM来决定到底是哪个杠杠!
      File file = new File(File.separator + "Users" + File.separator + "yuisama" +
   File.separator + "Desktop"+ File.separator +
   "javaIO"+File.separator+"bit"+File.separator+"TestIO.java");
      if (!file.getParentFile().exists()) { // 创建父目录
           file.getParentFile().mkdirs() ; // 有多少级父目录就创建多少级
           }
      if (file.exists()) {
       // 文件存在,进行删除
         file.delete();
      } else {
         file.createNewFile();
      }
    }
}
           

3.文件信息

在File类里面提供有一系列取得文件信息的操作:

1. 判断路径是否是文件: public boolean isFile()

2. 判断路径是否是目录: public boolean isDirectory()

3. 取得文件大小(字节): public long length()

4. 最后一次修改日期 : public long lastModified()

范例:取得文件信息

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class TestIO {
     public static void main(String[] args) throws IOException {
     // 要操作的文件
     File file = new File(File.separator + "Users" + File.separator + "yuisama" +
  File.separator + "Desktop"
  + File.separator + "test.png");
   // 保证文件存在再进行操作
     if (file.exists() && file.isFile()) {
        System.out.println("文件大小:" + file.length());
        System.out.println("最后一次修改日期: " + new Date(file.lastModified()));
     }
   }
}
           

 范例:列出目录中的全部组成

package www.bit.java.io;
import java.io.File;
import java.io.IOException;
public class TestIO {
     public static void main(String[] args) throws IOException {
     // 要操作的文件
     File file = new File(File.separator + "Users" + File.separator + "yuisama" +
  File.separator + "Desktop");
  // 保证是个目录且存在
     if (file.exists() && file.isDirectory()) {
     // 列出目录中的全部内容
         File[] result = file.listFiles() ;
     for (File file2 : result) {
       System.out.println(file2);
     }
   }
  }
}