JAVA——File类

File类
用来将文件或者文件夹封装成对象
方便将文件与文件夹的属性信息进行操作
File对象可以作为参数传递给流的构造函数
了解File类中的常用方法

注意:流只能操纵数据,而File可以操纵被封装成文件的信息。


import java.io.*;

class FileDemo
{
    public static void main(String[] args)
    {
        consMthod();
    }

    public static void consMthod()
    {
        //将a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象
        File f1 = new File("a.txt");


        File f2 = new File("c:\\abc","b.txt");

        File d = new File("c:\\abc");

        File f3 = new File(d,"c.txt");

        File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");

        sop(f1);
        sop(f2);
        sop(f3);
        sop(f4);
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

a.txt
c:\abc\b.txt
c:\abc\c.txt
c:\abc\zzz\a.txt

windows下和Linux下的打印结果不一样。因此为了跨平台的使用,所以引入了File.separator。
************************
ile 常见的方法:
1、创建。
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,
返回false.和输出流不一样,输出流对象一建立就创建文件,而且文件已经存在就会覆盖。
boolean mkdir():创建文件夹
boolean mkdirs():创建多级文件夹

2、删除
boolean delete(); 删除失败返回false。如果文件正在被使用,则删除不了返回false
void deleteOnExit(); 在程序退出时删除指定文件。
3、判断
boolean exists():文件是否存在
isFile();
isDirectory();
isHidden();
isAbsolute();

4、获取信息

getName()
getPath()
getParent()

getAbsolutePath()
long lastModified()
long length()

继续举例

class FileDemo
{
    public static void main(String[] args)
    {
        consMthod();
    }

    public static void listFiles_method()
    {
        File dir = new File("c:\\");
        File[] files = dir.listFiles();
        for(File f: files)
        {
            System.out.println(f.getName()+"::"+f.length());
        }
    }

    public static void list_dir()
    {
        File dir = new File("d:\\java\\day0");
        String[] arr = dir.list(new FilenameFilter()
            {
                public boolean accept(File dir,String name)
                {
                    System.out.println("dir:"+dir+"...name::"+name);

                    /*
                    if(name.endsWith(".bmp"))
                        return true;
                    else
                        return false;
                    */
                        return name.endsWith(".bmp");

                }
            });

    }
    public static void listDemo()
    {
        File f = new File("c:\\");
        String[] names = f.list();  //调用list方法的file对象必须是封装了一个目录。该目录还必须存在。
        for(String name:names)
        {
            System.out.println(name);   //打印C盘下所有文件名,包含隐藏文件
        }
    }

    public static void listRootsDemo()
    {
        File[] files = File.listRoots();
        for(File f:files)
        {
            System.out.println(f);      //  输出有效盘符
        }
    }

    public static void method_5()
    {
        File f1 = new File("c:\\Test.java");
        File f2 = new File("d:\\hah.java");
        sop("rename"+f1.renameTo(f2));   //d盘出现hah.java,c盘的test.java没了。

    }

    public static void method_4()
    {
        File f = new File("file.txt");
        sop("path:"+f.getPath());       //file.txt
        sop("abspath:"+f.getAbsolutePath());    //D:\java\file.txt
        sop("parent"+f.getParent);//该方法返回的是绝对路径下的父目录。本题因为是相对路径,所以返回null.如果设置File f = new File("c:\\abc\\file.txt"); 返回的是    c:\abc。如果想对路径
    }

    public static void method_3()
    {
        File f = new File("file.txt");
        //f.createNewFile();   文件是真,目录是假

        f.mkdir();//目录为真,文件为假的。

        //记住,在判断文件对象是否是文件和目录时,必须判断该文件对象封装的内容是否存在。
        //通过exists判断
        sop("dir:"+f.isDirectory());
        sop("file:"+f.isFile());
    }

    public static void method_2()
    {
        File f = new File("file.txt");
        sop("execute"+f.canExecute());//测试应用程序是否可以执行该文件
        sop("exists:"+f.exists());


        //创建文件夹
        File dir = new File("abc\\aa");
        sop("mkdir:"+dir.mkdir());
    }

    public static void method_1()throws IOException
    {
        File f = new File("file.txt");
        sop("create:"+f.createNewFile());
        sop("delete"+f.delete());
    }

    public static void method_onExit()
    {
        File f = new File("file1.txt");
        f.deleteOnExit();               //告知文件关闭以后把它给删了
        code(); //这里是一堆流操作


    }

    public static void consMthod()
    {
        //将a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象
        File f1 = new File("a.txt");


        File f2 = new File("c:\\abc","b.txt");

        File d = new File("c:\\abc");

        File f3 = new File(d,"c.txt");

        File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");

        sop(f1);
        sop(f2);
        sop(f3);
        sop(f4);


    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值