11Java语法回顾之io流

Java语法回顾之IO流

读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。

File类构造方法

/* 看API学习File类。
 * 
 * File既可以表示文件,也可以表示文件夹。(目录)
 * 构造方法:
 * File(String pathname):根据指定的路径创建File对象。
 * File(String parent, String child):根据指定的父文件夹和子文件或者文件夹创建File对象
 * File(File parent, String child):根据指定的父文件夹对象和子文件或者文件夹创建File对象
 */

File类构造方法的代码测试

public class FileDemo {
    public static void main(String[] args) {
        // 方式1
        File file = new File("d:\\a.txt");
        File file2 = new File("d:\\aaa");

        // 方式2
        File file3 = new File("d:\\", "a.txt");
        File file4 = new File("d:\\", "aaa");

        // 方式3
        File file5 = new File("d:\\");
        File file6 = new File(file5, "a.txt");
        File file7 = new File(file5, "aaa");
    }
}

File的常用方法之创建功能

/*
 * 创建功能:
 *      创建文件:public boolean createNewFile()
 *                如果指定的文件不存在,就创建。如果存在,就不创建。
 *      创建文件夹:public boolean mkdir()
 *              创建指定的目录,如果存在,就不创建。
 *             public boolean mkdirs()
 *              创建指定的目录,如果存储,就不创建。这个时候,如果父目录不存在,它也会自动创建。
 * 
 * 注意:
 *      你要创建什么,自己最清楚。也就是,你要调用哪个方法,你自己必须明白。
 *      因为如果你不明白,就会有问题。
 *      什么问题呢?骑白马的不一定是王子,可能是田野。
 * 
 * 绝对路径:以盘符开始的路径。
 * 相对路径:不以盘符开始的路径。
 */

File的常用方法之创建功能的代码测试

public class FileDemo {
    public static void main(String[] args) throws IOException {
        // 创建文件
        File file = new File("d:\\a.txt");
        System.out.println("createNewFile:" + file.createNewFile());

        // 创建文件 忘了写路径名称了,以当前项目路径所在路径为父目录
        File file2 = new File("a.txt");
        System.out.println("createNewFile:" + file2.createNewFile());

        // 创建目录
        File file3 = new File("aaa");
        System.out.println("mkdir:" + file3.mkdir());

        // 创建多级目录 如果想创建一个指定的目录或者文件,要求,父目录必须存在。
        // File file4 = new File("bbb\\ccc");
        // System.out.println("mkdir:" + file4.mkdir());

        // 如果目录过多,这样做就太麻烦。肿么办呢?
        File file4 = new File("bbb\\ccc");
        System.out.println("mkdirs:" + file4.mkdirs());

        // 创建文件
        File file5 = new File("b.txt");
        System.out.println("mkdir:" + file5.mkdir());
    }
}

File的常用方法之删除功能

/*
 * 删除功能:
 *      public boolean delete():既可以删除文件,也可以删除文件夹。取决于你使用的对象。
 * 
 * 注意:
 *      A:如果你删除的目录下还有内容,那么,必须先把所有内容删除完毕后,在删除目录。
 *      B:java语言的删除不走回收站。
 */
 代码不做具体测试

File的常用方法之判断功能

/*
 * 判断功能
 * boolean exists():判断file对象是否存在
 * boolean isFile():判断file对象是否是文件
 * boolean isDirectory():判断file对象是否是文件夹
 * boolean isAbsolute():判断file对象是否是绝对路径
 * boolean canRead():判断file对象是否可读
 * boolean canWrite():判断file对象是否可写
 * boolean isHidden():判断file对象是否隐藏
 */

File的常用方法之判断功能的代码测试

public class FileDemo {
    public static void main(String[] args) {
        File file = new File("a.txt");

        System.out.println("exists:" + file.exists());// true
        System.out.println("isFile:" + file.isFile());// true
        System.out.println("isDirectory:" + file.isDirectory());// false
        System.out.println("isAbsolute:" + file.isAbsolute());// false
        System.out.println("canRead:" + file.canRead());// true
        System.out.println("canWrite:" + file.canWrite());// true
        System.out.println("isHidden:" + file.isHidden());// false
    }
}

File的常用方法之获取功能

/*
 * 获取功能:
 * String getAbsolutePath():绝对路径
 * String getPath():相对路径
 * String getName():文件名称
 * long length():文件大小,单位是字节
 * long lastModified():上次修改时间的毫秒值。
 */

File的常用方法之获取功能的代码测试

public class FileDemo {
    public static void main(String[] args) {
        // 需求:指向文件
        File file = new File("bbb\\ccc\\a.txt");

        System.out.println("getAbsolutePath:" + file.getAbsolutePath());
        System.out.println("getPath:" + file.getPath());
        System.out.println("getName:" + file.getName());
        System.out.println("length:" + file.length());
        System.out.println("lastModified:" + file.lastModified());

        Date d = new Date(file.lastModified());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(d));
    }
}

File的常用方法之获取功能二

/*
 * 获取功能:
 * public static File[] listRoots():列出可用的系统文件根目录
 * public String[] list():返回的是指定目录下所有文件或者文件夹的名称数组
 * public File[] listFiles():返回的是指定目录下所有文件或者文件夹对象数组
 */

File的常用方法之获取功能二的代码测试

public class FileDemo {
    public static void main(String[] args) {
        File[] listRoots = File.listRoots();
        for (File file : listRoots) {
            System.err.println(file.getName());
        }

        // 创建对象
        File file = new File("/private/etc/");
        String[] list = file.list();
        for (String string : list) {
            System.out.println(string);
        }
        System.out.println("-----------------");
        File[] listFiles = file.listFiles();
        for (File file2 : listFiles) {
            System.out.println(file2.getName());
        }

    }
}

案例一:获取指定目录下所有.mp4文件的名称

/*
 * 需求:获取指定目录下所有.mp4文件的名称。
 * 
 * 思路:
 *      A:封装指定目录
 *      B:获取指定目录下所有文件或者文件夹File数组
 *      C:遍历File数组,获取得到每一个File对象
 *      D:判断该对象是否是否文件
 *      E:判断该对象的后缀名是否是.mp4,是否以.mp4结尾。
 */

案例一:获取指定目录下所有.mp4文件的名称的代码测试

public class FileTest {
    public static void main(String[] args) {
        // 封装指定目录
        File f = new File("d:\\");

        // 获取指定目录下所有文件或者文件夹File数组
        File[] fileArray = f.listFiles();

        // 遍历File数组,获取得到每一个File对象
        for (File file : fileArray) {
            // 判断该对象是否是否文件
            if (file.isFile()) {
                // 判断该对象的后缀名是否是.mp4,是否以.mp4结尾。
                String name = file.getName();
                if (name.endsWith(".mp4")) {
                    System.out.println(name);
                }
            }
        }
    }
}

你可能感兴趣的:(java,IO流)