首页 > 其他 > 详细

文件File

时间:2017-03-30 17:13:42      阅读:208      评论:0      收藏:0      [点我收藏+]

File简介


Java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。File类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。

创建File对象

File file=new File(String  pathname);

如:在F盘里的java文件夹下的OracleSQLInit.sql文件

new File("F:"+File.separator+"java"+File.separator+"OracleSQLInit.sql");

File.separator 常量,用于解决操作系统间目录分隔符之间的差异。

window   F:\java\OracleSQLInit.sql

linux     /java/OracleSQLInit.sql

new File("."+File.separator+"file.txt");

路径中的"."代表当前目录,这里指的就是当前项目的根目录了.

 

File的方法


查看文件或目录属性

1. String getName()  获取文件或目录的名字

2. long length()  获取文件的大小 以字节为单位

3. long lastModified()  获取文件的最后修改时间  毫秒值

4. String getPath()  获取当前文件或目录的路径,以字符串形式返回

5. boolean exists()  判断当前File对象描述的文件或目录是否存在

6. boolean isFile()  判断当前File对象描述的是否为一个文件

7. boolean isDirectory()  判断当前File对象描述的是否为一个目录

8. boolean canRead()  判断当前文件是否可读

9. boolean canWrite()  判断当前文件是否可写

10. String getAbsolutePath()  获取文件或目录的绝对路径

11. String getCononicalPath()  获取操作系统标准的绝对路径,需要捕获异常

 

新建文件或目录

1. boolean mkdir()  创建File描述的目录。

2. boolean mkdirs()   创建目录,同时创建所有不存在的上级目录(父目录)

3. boolean createNewFile() 创建File描述的文件(空文件)

在创建多级目录时,应选取使用mkdirs()方法。若在多级目录下创建文件,应先确保该文件所处的目录存在后,在创建文件。

 

删除文件或目录

boolean delete()  删除文件或目录,删除目录时要注意,要确保该目录下没有任何子项才可以成功删除目录。

 

查看目录内容

1. String[] list()  返回当前目录下子项的名字(当前目录下的所有文件名或目录名)

2. File[] listFiles()  获取当前目录下的所有子项,每一个子项用用一个File对象描述,最终以数组形式返回。

3. File[] listFiles(FileFilter filter)  重载的listFiles()方法,可以传入一个过滤器,用来返回当前目录下满足过滤器要求的所有子项。

FileFilter过滤器是一个接口,我们需要实现该接口,并实现其中的一个抽象方法boolean accept(File file)。重写该方法的目的是定义过滤条件,返回true表示给定的file是满足条件的。

 

案例


mkdir()   mkdirs()    createNewFile()

public class TestFile {

    public static void main(String[] args) throws Exception {
        File dir = new File("." + File.separator + "mydir");
        // 当我们创建该对象后,并不代表他描述的目录一定存在这只是java的一个对象,在内存中存在的。是否在硬盘上存在,要进行判断。
        if(!dir.exists()){
            dir.mkdir();
        }
        // File类重载构造器方法,在已存在的目录下,创建文件test.txt
        File file = new File(dir, "test.txt");
        if(!file.exists()){
            file.createNewFile();
        }
        System.out.println(file.getAbsolutePath());// E:\workspace\file\.\mydir\text.txt
        System.out.println(file.getCanonicalPath());// E:\workspace\file\mydir\text.txt
        System.out.println(file.getPath());// .\mydir\text.txt

        // 在当前目录下创建 a/b/c/d
        dir = new File("." + File.separator + "a" + File.separator + "b" + File.separator + "c" + File.separator + "d");
        if(!dir.exists()){
            // 使用mkdir创建目录,必须保证上级目录要存在
            dir.mkdir();
            // mkdirs创建目录,会自动将不存在的上级目录创建出来
            dir.mkdirs();
        }
    }
}

 

删除文件或目录 delete

public class TestFile {
    public static void main(String[] args) throws Exception {
        // 删除目录,要确保为空目录才可以删除,不是空目录则删除失败返回false,如果是文件可以直接删除
        File dir = new File("." + File.separator + "a");
        boolean delFlag = dir.delete();
        System.out.println("删除结果:" + delFlag);
    }
}

 

list()   listFiles()   listFiles(FileFilter filter)

输出当前项目跟目录下的所有子项

public class TestFile {
    public static void main(String[] args) throws Exception {
        File dir = new File(".");
        // 获取所有子项的名字
        String sub_names[] = dir.list();
        for(String sub : sub_names){
            System.out.println(sub);
        }

        // 获取所有子项。注意,确保File对象描述的是一个目录,再调用 listFiles()方法。
        File subs[] = dir.listFiles();
        for(File sub : subs){
            if(sub.isFile()){
                System.out.println("文件:" + sub.getName());
            }
            else if(sub.isDirectory()){
                System.out.println("目录:" + sub.getName());
            }
        }

        // 获取当前项目根目录下的所有文本文件
        File[] files = dir.listFiles(new FileFilter() {
            public boolean accept(File pathname) {
                return pathname.getName().endsWith("txt");
            }
        });
        for(File file : files){
            System.out.println("txt文件:" + file.getName());
        }
    }
}

 

文件File

原文:http://www.cnblogs.com/qin-derella/p/6646836.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!