JavaIO流-File类的使用

import org.junit.Test;

import java.io.*;
import java.util.Date;

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

    /**
     * 一、
     * 1.如何创建File类的实例
     *File(String filePath);
     *File(String parentPath,String childPath);
     *File(File parentFile,childPath);
     * 2.
     * 相对路径:相对某个路径下,指明的路径
     * 绝对路径:包含盘符在内的文件或者文件目录的路径
     *
     * 3.路径分隔符
     * windows:\\
     * unix:/
     * 推荐使用File.separator
     *
     * 二、常用方法
     * 1.
     *public String getAbsolutePath()//获取绝对路径
     *public String getPath() //获取路径
     *public String getName()//获取名称
     *public String getParent()//获取上层文件目录路径,若无,返回null
     *public long length()//获取文件长度(字节数),不能获取目录长度
     *public long lastModified()//获取最后一次的修改时间,毫秒值
     *
     *2.
     * 如下两个方法适用于文件目录
     * public String[] list()//获取指定目录下的所有文件或者文件目录的名称数组
     * public File[] listFiles()//获取指定目录下的所有文件或者文件目录的File数组
     *
     *3.
     * public boolean renameTo(File dest) //将文件重命名为指定文件路径
     * 比如:file1.renameTo(file2)为例
     * 要想保证放回true,需要file1在硬盘真实存在,且file2不能在硬盘中存在。
     *
     * 4.
     * * public boolean isDirectory()//判断是否是文件目录
     * * public boolean isFile()//判断是否是文件
     * * public boolean exists()//判断是否存在
     * * public boolean canRead()//判断是否可读
     * * public boolean canWrite()//判断是否可写
     * * public boolean isHidden()//判断是否隐藏
     *
     *
     * 三、创建硬盘中对应文件或文件目录
     *
     */

    @Test
    public void test1()
    {
        //构造器1
        //相对路径,相对于当前module
        File file1=new File("hello.txt");

        //绝对路径
        //"d:"+ File.separator+"orz"+File.separator+"info.txt"="d:\\orz\\info.txt";
        File file2=new File("d:"+ File.separator+"orz"+File.separator+"info.txt");
        System.out.println(file1);
        System.out.println(file2);

        //构造器2
        File file3=new File("D:"+File.separator+"orz","jiangxiaoyu");
        System.out.println(file3);

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


    @Test
    public void test2()
    {
        File file1=new File("hello.txt");
        File file2=new File("d:"+ File.separator+"orz"+File.separator+"info.txt");
        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(file2.lastModified());

    }

    @Test
    public void test3()
    {

        //文件需要真实存在,否则报错
        File file3=new File("E:"+File.separator+"code"+File.separator+"java");
        String [] list=file3.list();
        for(String s:list)
        {
            System.out.println(s);
        }

        System.out.println();

        File [] files=file3.listFiles();
        for (File f:files)
        {
            System.out.println(f);
        }
    }


    /**
     * public boolean renameTo(File dest) //将文件重命名为指定文件路径
     * 比如:file1.renameTo(file2)为例
     * 要想保证放回true,需要file1在硬盘真实存在,且file2不能在硬盘中存在。
     */
    @Test
    public void test4()
    {
        File file1=new File("hello.txt");
        File file2=new File("E:\\code\\java\\JAVADay1\\hi.txt");

        boolean renameTo=file2.renameTo(file1);
        System.out.println(renameTo);
    }

    /**
     * public boolean isDirectory()//判断是否是文件目录
     * public boolean isFile()//判断是否是文件
     * public boolean exists()//判断是否存在
     * public boolean canRead()//判断是否可读
     * public boolean canWrite()//判断是否可写
     * public boolean isHidden()//判断是否隐藏
     */

    @Test
    public void test5()
    {
        File file1=new File("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());

    }

    /**
     * 创建硬盘中对应的文件或文件目录
     * public boolean createNewFile() //创建文件,如文件存在则不创建并返回false
     *
     * 删除磁盘中的文件或文件目录
     * public boolean delete()//删除文件或文件夹
     * 注意事项:java中删除文件不走回收站
     */
    @Test
    public void test6 () throws IOException
    {
        //文件创建
        File file1=new File("hi.txt");
        if(!file1.exists())
        {
            boolean create=file1.createNewFile();
            if(create)
            {
                System.out.println("创建成功");
            }


        }
        else
        {
            boolean delete=file1.delete();
            if(delete)
            {
                System.out.println("删除成功");
            }

        }

    }

    /**
     *public boolean mkdir() //创建文件目录,如果文件目录存在,就不创建。如果此文件目录的上层目录不存在也不创建
     *public boolean mkdirs() //创建文件目录,如果上层文件目录不存在,一并创建
     *
     */

    @Test
    public void test7 () throws IOException {
        //文件目录创建
        File file1 = new File("E:\\code\\java\\test\\01");
        boolean mkdir = file1.mkdir();
        if (mkdir) {
            System.out.println("文件夹1创建成功");
        }

        File file2 = new File("E:\\code\\java\\test2\\02");
        boolean mkdir2 = file2.mkdirs();
        if (mkdir2) {
            System.out.println("文件夹2创建成功");
        }

    }

}

 

posted @ 2020-07-29 17:25  orz江小鱼  阅读(177)  评论(0编辑  收藏  举报