java.IO.File类详解

Wesley13
• 阅读 619

JDK1.0就存在的File类:用于对文件进行一般性操作。由于NIO中有对File对象进行改善,现在对其进行一般性说明。

File类有四个构造函数:(都必须传入路径地址String或者Path)

  File(String pathname)

  File(File parent, String child)

  File(String parent, String child)

  File(URI uri) 

parent指定路径(父目录),可以是File类对象也可以是字符串,child中也可以加入路径层级,但要注意,所用的路径必须存在,不存在的路径不会新建。

  关于斜杠和反斜杠,只能如下生硬地先记住吧:

  \\:右手用两个,比如new File("D:\\abc\\" + "Test.txt");

  /:左手用一个。比如new File("D:/abc/" + "Test.txt");

创建目录

   public boolean mkdir()

创建path指向的最后一个文件夹,若之前文件不存在,则创建失败。(不报错)

  public boolean mkdirs()

根据path创建一系列文件夹,若文件不存在,挨个创建。

import java.io.File;

/** * Created by li on 2016/10/24. * 1 */ public class FileInputDemo { public static void main(String[] args) { File file = new File("D:/abc/xyz/hello");

    System.out.println(file.exists());
    file.mkdirs();
}

}

 返回抽象路径名表示目录下的文件名和目录名。

  public File[] listFiles()

  返回抽象路径名下的所有文件。与list()方法的不同之处在于一个返回的是字符串,另一个返回的是File类对象

import java.io.File;

/** * Created by li on 2016/10/24. * 1 */ public class FileInputDemo { public static void main(String[] args) { File file = new File("D:/");

    System.out.println(file.exists());
    String\[\] dirName = file.list();
    for (String d : dirName
            ) {
        System.out.println(d);

    }
}

}

文件管理

  在进行文件操作时,常需要知道一个关于文件的信息。

  Java的File类提供了方法来操纵文件和获得一个文件的信息。如getName()返回文件名,getParent()返回父目录名,exists()测试文件或目录是否存在。

  然而,File类是不对称的,说它不对称,意思是虽然存在允许验证一个简单文件对象属性的很多方法,但是没有响应的方法来修改这些属性,即有get无set。

  另外,File类还可以对目录和文件进行删除、属性修改等工作。方法名都比较直观,在此不多做介绍了。进行一下操作的时候先做判断(exists) createNewFile() delete() 

使用FilenameFilter

  希望能够限制由list()方法返回的文件,使它仅返回那些与一定的文件名方式或者过滤器(filter)相匹配的文件。

  为达到这样的目的,必须使用list()方法的带参数的重载形式:

  public String[] list(FilenameFilter filter)

  在该形式中,filter是一个实现了FilenameFilter接口的类的对象。

  该接口中有一个**accept()**方法,只有该方法判断为true的文件名会被list方法返回。所以可以在accept方法中设置筛选规则。(这里使用了策略模式,可以回想一下Java集合中的比较器)。

  在此直接放出程序实例,来查看指定目录下的文件:

java.IO.File类详解

import java.io.File; import java.io.FilenameFilter;

public class FileTest4 {

public static void main(String\[\] args)
{
    File file = new File("D:/abc");
    String\[\] names = file.list();

    // 列出所有文件及路径
    for (String name : names)
    {
        System.out.println(name);
    }
    System.out.println("-----------------------");
    System.out.println("-------所有文件名为.java结尾的文件-----------");
    // 选择.java结尾的文件
    for (String name : names)
    {
        if (name.endsWith(".java"))
        {
            System.out.println(name);
        }
    }

    // 使用文件过滤器
    String\[\] selectedNames = file.list(new FilenameFilter()
    {
        // 匿名内部类实现了FilenameFilter接口

        // 实现接口中的方法

        @Override
        public boolean accept(File dir, String name)
        {
            if (name.endsWith(".java")) { return true; }
            return false;
        }
    });
    // 只有accept返回true的文件名会被返回到selectedNames数组中

    System.out.println("-----------------------");
    System.out.println("-------所有文件名为.java结尾的文件-----------");
    for (String name : selectedNames)
    {
        System.out.println(name);
    }

}

}

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
半臻 半臻
3年前
Python基础8——文件操作
16文件操作16.1文件操作的基本概念文件操作的步骤1.打开文件2.读、写文件3.关闭文件open函数,创建一个file对象,默认是以只读的方式打开read方法:一次性读取文件的所有内容write方法:将指定内容写入文件close方法:关闭文件file对象的属性flie.name文件的名称file.mode文件的访问模式file.closed
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
javase IO
File类,用来表示一个文件或者一个文件夹,通过File类的对象来对文件夹的名字,路径,大小等等访问,但是不可以直接访问文件内的数据构造newFile(Stringurl)指定路径newFile(StringparentUrl,Stringurl)指定父路径,当前文件newFile(Fileparent,
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Stella981 Stella981
3年前
File类方法小结
File类的方法中,除构造函数外,常用方法的几个用处:1.创建文件、目录,删除文件、目录;2.获取及设置文件属性。3\.搜索文件列表4.……还能获取分区信息?构造方法:构造方法摘要File(http://my.oschina.net/u/java/io/File.htmlFile(java.io.File,j
Wesley13 Wesley13
3年前
JavaSE IO流
1.文件操作:在Java中如何操作磁盘中文件,java中把文件作为一个对象进行操作   File类进行表示磁盘中的文件:   路径:     绝对路径:从磁盘的根目录进行表示如:E:\\vedio\\20170713\\JavaSE\\T\_day01\\question\\常见面试题\_01.t
Stella981 Stella981
3年前
Learning Java7 WatchService
WatchService直接映射到nativefileeventnotificationmechanism,如果原生文件时间通知机制不可用,默认实现就会使用polling方式。1\.JDK的实现风格,java.nio.file.Path接口对应一个java.nio.file.Paths静态方法工具类。Path接口定义了registe
Stella981 Stella981
3年前
Gradle 取相对路径
importjava.nio.file.Path;importjava.nio.file.Paths;defpath1...defpath2...taskhello{PathpathBasePaths.get(path1);
Stella981 Stella981
3年前
File的几个常用方法
1.FilefilenewFile(Stringpath);只是创建文件对象2.file.exists();文件是否存在3.file.isDirectory();判断文件对象是否是文件夹4.String\\listfile.list();返回文件列表,文件夹名字或者文件名(包括后缀名)5.File.sep