Java_IO_1_File类

本文详细介绍了Java中File类的功能及用法,包括文件和目录的路径表示、构造方法、常用方法及其应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教程自 尚硅谷 宋红康
java.io.File类
* 1.凡是与输入、输出相关的类、接口等都定义在java.io包下
* 2.File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录
* 3.File类对象是与平台无关的。
* 4.File中的方法,仅涉及到如何创建、删除、重命名等等。只要涉及文件内容的,File是无能为力的,必须由io流来完成。
* 5.File类的对象常作为io流的具体类的构造器的形参。

一简介
1、java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
2、File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
3、File对象可以作为参数传递给流的构造函数

二、File类的常见构造方法:
1、public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
2、public File(String parent,String child)
以parent为父路径,child为子路径创建File对象。
3、File的静态属性String separator存储了当前系统的路径分隔符。
在UNIX中,此字段为‘/’,在Windows中,为‘\’

三、File类的方法
1、访问文件名:
getName()
getPath()
getAbsoluteFile()
getAbsolutePath()
getParent()
renameTo(File newName)
2、文件检测
exists()
canWrite()
canRead()
isFile()
isDirectory()
3、获取常规文件信息
lastModified()
length()
4、文件操作相关
createNewFile()
delete()
5、目录操作相关
mkDir()
mkDirs()
list()
listFiles()
四、File类的操作

File dir1 = new File("D:/IOTest/dir1");
if (!dir1.exists()) {     // 如果D:/IOTest/dir1不存在,就创建为目录
    dir1.mkdir(); }
// 创建以dir1为父目录,名为"dir2"的File对象
File dir2 = new File(dir1, "dir2"); 
if (!dir2.exists()) { // 如果还不存在,就创建为目录
    dir2.mkdirs(); }
File dir4 = new File(dir1, "dir3/dir4");
if (!dir4.exists()) {
    dir4.mkdirs();
}
// 创建以dir2为父目录,名为"test.txt"的File对象
File file = new File(dir2, "test.txt");     
if (!file.exists()) { // 如果还不存在,就创建为文件
    file.createNewFile();}

五、代码示例
1、文件名相关操作

    /*
     * 路径:
     * 绝对路径:包括盘符在内的完整的文件路径
     * 相对路径:在当前文件目录下的文件的路径
     * 
     *  getName()
        getPath()
        getAbsoluteFile()
        getAbsolutePath()
        getParent()
        renameTo(File newName)

     */
    @Test
    public void test1(){
        File file1 = new File("d:/io/helloworld.txt");
        File file2 = new File("hello1.txt");

        File file3 = new File("d:\\io\\io1");
        File file4 = new File("d:\\io2");

        System.out.println(file1.getName());
        System.out.println(file1.getPath());
        System.out.println(file1.getAbsoluteFile());
        System.out.println(file1.getParent());
        System.out.println(file1.getAbsolutePath());

        System.out.println();

        System.out.println(file3.getName());
        System.out.println(file3.getPath());
        System.out.println(file3.getAbsoluteFile());
        System.out.println(file3.getParent());
        System.out.println(file3.getAbsolutePath());

        //renameTo(File newName):重命名
        //file1.renameTo(file2):file1重命名为file2.要求:file1文件一定存在,file2一定不存在
        boolean b = file1.renameTo(file2);
        System.out.println(b);

        boolean b1 = file4.renameTo(file3);
        System.out.println(b1);
    }

2、文件检测相关操作,返回的boolean

/*
     *  exists()
        canWrite()
        canRead()
        isFile()
        isDirectory()
        lastModified()
        length()

     */
    @Test
    public void test2(){
        File file1 = new File("d:/io/helloworld.txt");
        File file2 = new File("d:\\io\\io1");

        System.out.println(file1.exists());
        System.out.println(file1.canWrite());
        System.out.println(file1.canRead());
        System.out.println(file1.isFile());
        System.out.println(file1.isDirectory());
        System.out.println(new Date(file1.lastModified()));
        System.out.println(file1.length());

        System.out.println();

        System.out.println(file2.exists());
        System.out.println(file2.canWrite());
        System.out.println(file2.canRead());
        System.out.println(file2.isFile());
        System.out.println(file2.isDirectory());
        System.out.println(new Date(file2.lastModified()));
        System.out.println(file2.length());
    }

3、文件和目录相关操作

/*
     *  createNewFile()
        delete()
        mkDir():创建一个文件目录。只有在上层文件目录存在的情况下,才能返回true
        mkDirs():创建一个文件目录。若上层文件目录不存在,一并创建
        list()
        listFiles()
     */
    @Test
    public void test3() throws IOException{
        File file1 = new File("d:/io/helloworld.txt");
        System.out.println(file1.delete());

        if(!file1.exists()){
            boolean b = file1.createNewFile();
            System.out.println(b);
        }

        File file2 = new File("d:\\io1\\io2");
        if(!file2.exists()){
            boolean b = file2.mkdirs();
            System.out.println(b);
        }

        File file3 = new File("d:\\teach");
        String[] strs = file3.list();
        for(int i = 0;i < strs.length;i++){
            System.out.println(strs[i]);
        }

        System.out.println();

        File[] files = file3.listFiles();
        for(int i = 0;i < files.length;i++){
            System.out.println(files[i].getName());
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值