java.io.File简单学习

2016-07-12  本文已影响54人  初窥门径

File类的用途

java.io.File用于表示文件(目录),可以通过 File 类在程序中操作硬盘上的文件和目录。
File 类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。

java.io.File常用API

构造器

File(String pathname)

// 参数为相对路径
File dir = new File(".");

File(File parent, String child)

File demo = new File(dir, "demo");

File(String parent, String child)

File demo2 = new File("demo", "lv1/lv2/lv3");

方法

String getPath() 取得相对路径

File dir = new File(".");
System.out.println(dir.getPath());// .

String getAbsolutePath() 取得绝对路径

System.out.println(dir.getAbsolutePath());// G:\github\xuxu\.

String getCanonicalPath() 取得规范化的绝对路径

System.out.println(dir.getCanonicalPath());// G:\github\xuxu

boolean exists() 判断文件或目录是否存在

boolean mkdir() 创建目录

if (!demo.exists()) {
    demo.mkdir();
}

boolean mkdirs() 创建多级目录

File demo2 = new File("lv1/lv2/lv3");
if (!demo2.exists()) {
    demo2.mkdirs();
}

boolean createNewFile() 创建一个新的空文件

File test = new File(demo, "test.txt");
if (!test.exists()) {
    test.createNewFile();
}

File[] listFiles() 取得目录内容

//如果是目录,返回该目录下包含的内容(仅一级,不会往下递归)
File[] files = demo.listFiles();
System.out.println(Arrays.toString(files));
//如果不是目录,此方法返回null
File[] files2 = test.listFiles();
System.out.println(files2);//null

long length() 取得文件长度

long lastModified() 取得文件的最后修改时间

System.out.println(new Date(test.lastModified()));

boolean delete() 删除文件或目录

File[] files = demo.listFiles();
for (File file : files) {
    file.delete();//删除文件
}
//如果是目录,则必须是空的才能删除掉
demo.delete();

测试File类的API

package demo.java.io.file;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;

public class FileDemo {
    public static void main(String[] args) throws IOException {
        // 参数为相对路径
        File dir = new File(".");

        // getCanonicalPath()取得规范化的绝对路径
        System.out.println(dir.getCanonicalPath());// G:\github\xuxu
        // getAbsolutePath()取得绝对路径
        System.out.println(dir.getAbsolutePath());// G:\github\xuxu\.
        // getPath()取得相对路径
        System.out.println(dir.getPath());// .

        File demo = new File(dir, "demo");
        System.out.println(demo.getPath());// .\demo

        if (!demo.exists()) {
            demo.mkdir();
        }
        File demo2 = new File("demo", "lv1/lv2/lv3");
        System.out.println(demo2.getCanonicalPath());// G:\github\xuxu\demo\lv1\lv2\lv3
        if (!demo2.exists()) {
            demo2.mkdirs();
        }

        File test = new File(demo, "test.txt");
        File test2 = new File(demo, "test2.txt");
        if (!test.exists()) {
            test.createNewFile();
        }
        if (!test2.exists()) {
            test2.createNewFile();
        }

        File[] files = demo.listFiles();
        System.out.println(Arrays.toString(files));
        File[] files2 = test.listFiles();
        System.out.println(files2);// null

        System.out.println(demo.length());
        System.out.println(test.length());

        System.out.println(new Date(test.lastModified()));

        for (File file : files) {
            file.delete();
        }
        demo.delete();// 目录必须是空的才能删除掉
    }
}
上一篇下一篇

猜你喜欢

热点阅读