Java File 常用 API

在变量、数组、和对象中存储的数据是暂时存在的,程序结束后他们就会丢失.为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他程序中使用他们.

Java 的I/O技术可以将数据保存到文本文件、二进制文件和ZIP压缩文件中.


一、文件操作

java.io.File用于获取文件的内容或者属性,不能用于访问文件的内容.


1.1 创建File对象

(1) File(String pathname)

通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例.

抽象路径应尽量使用相对路径,并且目录的层级分隔符不要直接写"/"或"\",应使用File.separator这个常量表示,以避免不同系统带来的差异.

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

(2) File(parent,child)
File(File parent,String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
第一个参数: 当前文件所属的目录.
第二个参数: 当前文件的名字.
File dir = new File("demo");
File file = new File(dir,"a.txt");

1.2 File表示文件信息

(1) isFile()
File的isFile方法用于判断当前File对象表示的是否为一个文件.
该方法若返回true,这表示File表示的是一个文件.
System.out.println(file.isFile()?"是一个文件":"不是一个文件");//是一个文件

(2) length()   

File的length方法用于返回由此抽象路径名表示的文件的长度.

该方法返回的long值表示该文件所占用的字节量.
System.out.println(file.length());//8
(3) exists()
File的exists方法用于测试此抽象路径名表示的文件或目录是否存在.
若该File表示的文件或目录存在则返回true,否则返回false.
System.out.println(file.exists());//true
(4) createNewFile()
File的createNewFile方法用于当前文件不存在时,创建新的空文件.
返回值:如果指定的文件不存在并成功地创建,则返回 true.如果指定的文件已经存在,则返回 false.
System.out.println(file.createNewFile());//false   
(5) delete()
File的delete方法用于删除此抽象路径名表示的文件或目录.
返回值:当且仅当成功删除文件或目录时,返回true;否则返回false.
如果当前对象为目录.该方法只能删除空目录.
System.out.println(file.delete());//true    
(6) getParentFile()
File的getParentFile()方法用于获取当前File的父目录.
File file = new File(
            "a" + File.separator +
            "b" + File.separator +
            "c" + File.separator +
            "d" + File.separator +
            "e" + File.separator +
            "f.txt");
System.out.println(file.getParentFile());//a\b\c\d\e

(7) getName()

File的getName()方法用于获取当前File对象的名称.
File file = new File(
            "dir" + File.separator +
            "file.txt"
            );
System.out.println(file);//dir\file.txt
System.out.println(file.getName());//file.txt
1.3 File表示目录信息
(1) isDirectory()
File的isDirectory方法用于判断当前File对象表示的是否为一个目录.
该方法若返回true,这表示File表示的是一个目录.
System.out.println(file.isDirectory()?"是一个目录":"不是一个目录");//不是一个目录    
(2) mkdir()
File的mkdir方法用于创建此抽象路径名指定的目录.
返回值:成功创建目录时,返回true;否则返回false.
File dir = new File("." + File.separator + "demo");
System.out.println(dir.mkdir());//true
(3) mkdirs()
File的mkdirs方法用于创建多层目录.
返回值: 创建成功,返回true;否则返回false.
File dir = new File("." + File.separator + "demo" + File.separator + "demo1");
System.out.println(dir.mkdirs());//true
操作失败时也可能已经成功地创建了一部分必需的父目录.
(4) delete()
File的delete方法是用于删除此抽象路径名表示的文件或目录.
与File表示文件信息delete()方法相同.
(5) listFiles()
File的listFiles方法用于返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件.
返回值:抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录.如果目录为空,那么数组也将为空.
如果抽象路径名不表示一个目录,或者发生I/O错误,则返回null.
System.out.println(Arrays.toString(dir.listFiles()));//[.\demo\a.txt, .\demo\b.txt, .\demo\demo1]
(6) File[] listFiles(FileFilter  filter)
重载 listFiles()
FileFilter存在于java.io.FileFilter.
通过listFiles方法我们可以获取一个目录下的所有子项,但有些时候我们并不希望获取全部子项,而是想获取部分满足我们实际需求的子项时.
FileFilter是用于抽象路径名的过滤器.
System.out.println(
            Arrays.toString(
                dir.listFiles( new FileFilter(){
                    @Override
                    public boolean accept(File pathname) {
                        return pathname.getName().endsWith("txt");
                    }
                }
                )
            )
    );//[.\demo\a.txt, .\demo\b.txt
该方法的参数FileFilter实例的accept方法并进行过滤,listFiles方法会将所有accept方法返回true的子项保留并返回.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值