Java File类的实例化和常用方法

/**
 * File类的使用
 * 1.File类的一个对象,代表一个文件或一个目录
 * 2.File类声名在java.io包下
 * 3.File类中设计到关于文件或文件目录的创建,删除,重命名,修改时间,文件大小等方法,
 * 并未涉及到写入或读取文件内容的操作。
 * 如果需要读取或写入文件内容,必须使用IO流来完成。
 * 4.后续File类的uix常会作为参数传递到流的构造器当中,指明读取或写入的“终点“.
 */

1.File类的实例化创建 

/**
 * 1.如何创建一个File类的实例
 *      File(String filePath)
 *      File(String parentPath,String childPath)
 *      File(file parentFile,String childPath)
 * 2.
 * 相对路径:相较于某个路劲下,指明的路径。
 * 绝对路径:包含盘符在内的文件或文件目录的路径
 *
 * 3.路径分隔符
 * windows:\\
 * unix:/
 */

    @Test
    public void test1() {
        //构造器1:
        File file1 = new File("hello.txt");
        File file2 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2");
        System.out.println(file1);
        System.out.println(file2);

        //构造器2:
        File file3 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2","file");
        System.out.println(file3);

        //构造器3:
        File file4 = new File(file3,"hit.txt");
        System.out.println(file4);
    }

输出结果:
hello.txt
D:\KayProgramFiles\javaBD\IO\demo2
D:\KayProgramFiles\javaBD\IO\demo2\file
D:\KayProgramFiles\javaBD\IO\demo2\file\hit.txt

File类的常用方法 

/**
 * public String getAbsolutePath():获取绝对路径
 * public String getPath():获取路径
 * public String getName():获取名称
 * public String getParent():获取上层文件目录路径。若无,返回null
 * public Long Length():获取文件长度(即:字节数)。不能获取目录的长度
 * public Long LastModified():获取最后一次的修改时间,毫秒值
 *
 * public String[] list():获取指定目录下的所有文件或这文件目录的名称数组
 * public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
 */

 @Test
    public void test2(){
        File file1 = new File("hello.txt");
        File file2 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2");

        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getPath());
        System.out.println(file1.getName());
        System.out.println(file1.getParent());
        System.out.println(file1.length());
        System.out.println(new Date(file1.lastModified()));

        System.out.println("*************************");

        System.out.println(file2.getAbsolutePath());
        System.out.println(file2.getPath());
        System.out.println(file2.getName());
        System.out.println(file2.getParent());
        System.out.println(file2.length());
        System.out.println(new Date(file2.lastModified()));
    }
输出结果:
D:\KayProgramFiles\javaBD\IO\demo2\hello.txt
hello.txt
hello.txt
null
0
Thu Jan 01 08:00:00 CST 1970
*************************
D:\KayProgramFiles\javaBD\IO\demo2
D:\KayProgramFiles\javaBD\IO\demo2
demo2
D:\KayProgramFiles\javaBD\IO
4096
Wed Aug 24 16:09:49 CST 2022

* public String[] list():获取指定目录下的所有文件或这文件目录的名称数组

* public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组

    @Test
    public void test3(){
        File file = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2");
        String[] list = file.list();
        List list1 = Arrays.asList(list);
        list1.stream().forEach(System.out::println);

        File[] files = file.listFiles();
        List files1 = Arrays.asList(files);
        files1.stream().forEach(System.out::println);
    }
输出结果:
.gitignore
.idea
.mvn
demo2.iml
download
mvnw
mvnw.cmd
pom.xml
src
target
D:\KayProgramFiles\javaBD\IO\demo2\.gitignore
D:\KayProgramFiles\javaBD\IO\demo2\.idea
D:\KayProgramFiles\javaBD\IO\demo2\.mvn
D:\KayProgramFiles\javaBD\IO\demo2\demo2.iml
D:\KayProgramFiles\javaBD\IO\demo2\download
D:\KayProgramFiles\javaBD\IO\demo2\mvnw
D:\KayProgramFiles\javaBD\IO\demo2\mvnw.cmd
D:\KayProgramFiles\javaBD\IO\demo2\pom.xml
D:\KayProgramFiles\javaBD\IO\demo2\src
D:\KayProgramFiles\javaBD\IO\demo2\target
/**
 * public boolean renameTo(File dest):把文件重命名为指定的文件路径
 * 比如:file1.renameTo(file2)为例:
 *  要想保证返回true,需要file在硬盘中存在,且file2不能在硬盘中存在
 * 其实也可以用来给文件换位置
 *
 */
@Test
    public void test4(){
        File file = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\hello.txt");
        File file1 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\download\\hello.txt");
        boolean b = file.renameTo(file1);
        System.out.println(b);
    }

/**
 * isDirectory:是否是目录
 * isFile:是否是文件
 * exists:文件是否存在
 * canRead:判断文件是否可读
 * cnaWrite:文件是否可写
 * isHidden:文件是否隐藏
 */

     下面第一个文件是不存在,第二个文件为一个txt文件

    @Test
    public void test5(){
        File file = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\hello.txt");
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.exists());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println(file.isHidden());
        System.out.println("*****************************");
        File file1 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\download\\hello.txt");
        System.out.println(file1.isDirectory());
        System.out.println(file1.isFile());
        System.out.println(file1.exists());
        System.out.println(file1.canRead());
        System.out.println(file1.canWrite());
        System.out.println(file1.isHidden());
    }
输出结果:
false
false
false
false
false
false
*****************************
false
true
true
true
true
false

/**
 * 创建硬盘中对应的文件或文件目录
 * public boolean createNewFile():创建文件。若文件存在,则不创建,返回false
 * public boolean mkdir():创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层
 * public boolean mkdirs():创建文件目录。如果上层文件目录不存在,一并创建。
 *
 * 删除磁盘中的文件或文件目录
 * public boolean delete():删除文件或者文件夹
 * 删除注意事项:
 * Java中的删除不走回收站
 */
 @Test
    public void test6() throws IOException {
        File file = new File("hi.txt");
        if (!file.exists()){
            //文件的创建
            boolean newFile = file.createNewFile();
        }else {
            //文件的删除
            boolean delete = file.delete();
        }

    }

    @Test
    public void test7(){
        File file = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\download\\z\\k\\hello.txt");
        File file1 = new File("D:\\KayProgramFiles\\javaBD\\IO\\demo2\\download\\z\\hello.txt");
        boolean mkdir = file.mkdirs();
        System.out.println(mkdir);
        System.out.println(file1.mkdir());
    }

你可能感兴趣的:(java,开发语言)