JAVA——File类

来源:互联网 发布:淘宝异地客服兼职 编辑:程序博客网 时间:2024/06/05 02:24

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);    }}
0 0