File类的常用API,File容易学习

Java—IO流 File类的常用API,javaiofileapi

  • File类

  1.只用于表示文件(目录)的新闻(名称、大小等),不可能用于文书内容的拜望。

package cn.test;

import java.io.File;
import java.io.IOException;

public class Demo16 {

    public static void main(String[] args) {
        File file = new File("F:\javaio");
        //文件(目录)是否存在
        if(!file.exists()) {
            //创建目录
            file.mkdir();//file.mkdirs();
        } else {
            //文件(目录)删除
            file.delete();
        }
        //是否是目录 如果是目录返回true,如果不是目录或目录不存在返回false
        System.out.println(file.isDirectory());
        //是否是文件
        System.out.println(file.isFile());

        //File file2 = new File("F:\java\日记1.txt");
        File file2 = new File("F:\javaio", "日记2.txt");
        if (!file2.exists()) {
            try {
                //创建文件
                file2.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            file2.delete();
        }

        System.out.println(file);
        System.out.println(file.getAbsolutePath());//返回绝对路径
        System.out.println(file.getName());//目录名称
        System.out.println(file2.getName());//文件名称
        System.out.println(file.getParent());//父级目录的路径
        System.out.println(file.getParent());//父级目录的路径
    }

}

   2.遍历目录

package com.test.io;

import java.io.File;
import java.io.IOException;

/**
 * File类的常用操作
 * @author Administrator
 *
 */
public class FileUtils {
    /**
     * 列出指定目录下(包括其子目录)的所有文件
     * @param dir
     * @throws IOException
     */
    public static void listDirectory(File dir) throws IOException{
        if (!dir.exists()) {
            throw new IllegalArgumentException("目录" + dir + "不存在");
        }
        if (!dir.isDirectory()) {
            throw new IllegalArgumentException(dir + "不是目录");
        }

        /* String[] filenames = dir.list();//返回的是字符串数组,列出当前目录下的子目录和文件(不包含子目录下的内容)
        for (String string : filenames) {
            System.out.println(dir + "\" +string);
        } */

        //如果要遍历子目录下的内容,就需要构造File对象做递归操作
        File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象
        if (files != null && files.length > 0) {
            for (File file : files) {
                if (file.isDirectory()) {
                    //递归
                    listDirectory(file);
                } else {
                    System.out.println(file);
                }
            }
        }
    }
}

  

File类的常用API,javaiofileapi File类 1.只用于表示文件(目录)的新闻(名称、大小等),无法用于文书内容的拜会。 package cn.test...

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:githubxuxu.

String getCanonicalPath() 猎取标准化的相对路线

System.out.println(dir.getCanonicalPath());// G:githubxuxu

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:githubxuxu
        // getAbsolutePath()取得绝对路径
        System.out.println(dir.getAbsolutePath());// G:githubxuxu.
        // 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:githubxuxudemolv1lv2lv3
        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();// 目录必须是空的才能删除掉
    }
}

本文由365bet体育在线官网发布于关于计算机,转载请注明出处:File类的常用API,File容易学习

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。