Java IO流File对象

File

字段摘要

static String

separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

 

构造方法

File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

File file1=new File("C:\\a.txt");
File file2=new File("C:\\","a.txt");
File f=new File("C:\\");
File file23=new File(f,"a.txt");
File file4=new File("C:"+File.separator+"a.txt");


常用方法

1,        获取

String

getName()
获取文件或目录的名称。

File

getAbsoluteFile()
获取绝对路径名形式。

String

getAbsolutePath()
获取绝对路径名字符串。

long

length()
返回文件的大小。

long

lastModified()
返回文件最后一次被修改的时间。

 

 

2,        创建和删除

boolean

createNewFile()
和输出流不同,如果文件不存在,则创建,如果文件存在,则不创建。

boolean

delete()
删除此抽象路径名表示的文件或目录(如果删除文件夹,此文件夹必须是空内容)。

void

deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

boolean

mkdir()
创建此抽象路径名指定的目录。

boolean

mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

 

3,        判断

boolean

exists()
测试此抽象路径名表示的文件或目录是否存在。

boolean

isDirectory()
测试此抽象路径名表示的文件是否是一个目录。

boolean

isFile()
测试此抽象路径名表示的文件是否是一个标准文件。

boolean

isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件。

 boolean

canRead()
          
测试应用程序是否可以读取此抽象路径名表示的文件。

 boolean

canWrite()
          
测试应用程序是否可以修改此抽象路径名表示的文件。

 

 

4,        重命名

boolean

renameTo(File dest)
重新命名此抽象路径名表示的文件(其实就是剪切或移动文件)。

 

5,        系统根目录和容量获取

static File[]

listRoots()
列出可用的文件系统根(分区)。

long

getFreeSpace()
返回此抽象路径名指定的分区中未分配的字节数(可用空间)。

long

getTotalSpace()
返回此抽象路径名指定的分区大小。(分区容量)

long

getUsableSpace()
返回此抽象路径名指定的分区上可用于此虚拟机的字节数。

 

6,        获取目录内容

String[]

list()
获取当前目录下的文件以及文件夹名,包含隐藏文件。

调用list方法的File对象中封转的必须是目录,否则会发生

NullPointerException异常,如果访问的系统级目录,也会发生空指针异常。

如果目录存在但是没有内容,会返回一个数组,但长度为0.

  

package cn.file;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;

public class FileDemo {
   public static void main(String[] args) throws IOException {
      isDemo();
   }

   // 1, 获取
   public static void getDemo() {
      File file = new File("a.txt");
      // 文件或文件夹名称
      String name = file.getName();
      System.out.println(name);
      // 绝对路劲
      String absolutePath = file.getAbsolutePath();
      System.out.println(absolutePath);
      // 相对路径
      String path = file.getPath();
      System.out.println(path);
      // 文件大小
      long len = file.length();
      System.out.println(len);
      // 最后一次修改时间
      long time = file.lastModified();
      Date date = new Date(time);
      DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
      String str_time = dateFormat.format(date);
      System.out.println(str_time);
   }
   // 2, 创建和删除
   public static void creatAndDelect() throws IOException {、    // 文件夹
      File file = new File("C:\\a\\b\\c\\d\\e");
      boolean b = file.mkdirs();
      System.out.println(b);
      System.out.println(file.delete());
      // 文件
      // File file=new File("C:\\a");
      // boolean b1=file.createNewFile();
      // boolean b2=file.delete();
      // System.out.println(b1);
      // System.out.println(b2);
   }

   // 3, 判断
   public static void isDemo() {
      File file = new File("C:\\a.txt");
      System.out.println("exists:" + file.exists());
      System.out.println("isDirectory:" + file.isDirectory());
      System.out.println("isFile:" + file.isFile());
      System.out.println("isHidden:" + file.isHidden());
   }

   // 4, 重命名
   public static void reNameToDemo() {
      File file = new File("a.txt");
      File f = new File("C:\\b.txt");
      System.out.println(file.renameTo(f));
   }

   // 5, 系统根目录和容量获取
   public static void listRootDemo() {
      File files[] = File.listRoots();
      for (File file : files) {
        System.out.println(file);
        System.out.println("FreeSpace:" + file.getFreeSpace());
        System.out.println("TotalSpace:" + file.getTotalSpace());
        System.out.println("UsableSpace" + file.getUsableSpace());
      }
   }

   public static void listDemo() {
      File file = new File("C:\\");
      String names[] = file.list();
      for (String name : names) {
        System.out.println(name);
      }
   }
}