Java File解析

创建文件

  1. File.createNewFile();仅仅创建文件.
1
2
3
4
5
6
7
//在f盘下面创建a.txt
File file2 = new File("F:\\demo\\a.txt");
file2.createNewFile();

//该方法会报IO异常 系统找不到指定的路径
File file3 = new File("F:\\demo\\a\\a.txt");
file3.createNewFile();
  1. File.mkdir();创建文件夹,如果已经创建就不在进行创建;

注意:当用该方法创建文件时,只能创建一个文件,如果两个文件的话,父文件不存在还是无法创建.

1
2
3
4
5
6
7
8
9
10
11
//这种方式无法进行创建文件
File file2 = new File("F:\\demo\\a\\a.txt");
file2.mkdir();

//如果demo文件夹不存在,还是无法创建
File file3 = new File("F:\\demo\\a");
file3.mkdir();

//当demo存在时才会进行创建
File file4 = new File("F:\\demo\\a");
file4.mkdir();

3.File.mkdirs();创建文件夹,如果父文件不存在,父文件也会创建出来.

//创建文件夹
File file2 = new File(“F:\demo\a\a.txt”);
file2.mkdirs();

删除文件

注意事项:删除文件后无法在回收站中找到.如果删除文件夹,文件夹下面不能有文件或者文件夹
File.delete();

文件重命名

注意:如果文件路径相同,则相当于重命名,如果文件路径不相同,则是相当于改名并剪切.
File.renameTo();
将a.txt重命名为b.txt

1
2
3
4
File file = new File("F:\\demo\\a\\a.txt");

File fileNew = new File("F:\\demo\\a\\b.txt");
file.renameTo(fileNew);

将b.txt剪切到demo文件夹下改名为c.txt

1
2
File fileAfter = new File("F:\\demo\\c.txt");
fileNew.renameTo(fileAfter);

判断功能

  • public boolean isDirectory():是否是目录
  • public boolean isFile():是否是文件夹
  • public boolean exists():是否存在
  • public boolean canRead():是否可读
  • public boolean canWrite():是否可写
  • public boolean isHidden():是否隐藏

获取文件路径大小等方法

  • public String getAbsolutePath():获取绝对路径
  • public String getPath():获取相对路径
  • public String getName():获取名称
  • public long length():获取长度。字节数
  • public long lastModified():获取最后一次的修改时间,毫秒值

指定文件夹下的文件获取

  • public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
  • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

    遍历demo下的文件,仅仅是当前目录下的文件

1
2
3
4
5
6
7
//获取demo下的文件
File file = new File("F:\\demo");
File[] files = file.listFiles();
for (File o: files ) {
System.out.println("文件名字:"+o.getName());
System.out.println("文件路径"+o.getAbsolutePath());
}

根据需求查找文件

1
File[] listFiles(FileFilter filter)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//文件名过滤器

//过滤后缀名为 .txt的文件
File file = new File("F:\\demo");
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
String fileName = pathname.getName().toLowerCase();
if (fileName.endsWith(".txt")) {
return true;
} else {
return false;
}

}
};
File[] files = file.listFiles(fileFilter);
for (File o: files ) {
System.out.println(o.getName());

}

File[] listFiles(FilenameFilter filter);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//过滤demo文件夹中后缀名为 .txt的文件
File file = new File("f:\\demo");

FilenameFilter fileFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {

if (dir.getAbsoluteFile().toString().equals("f:\\demo") && name.endsWith(".txt")) {
return true;
} else {
return false;
}
}
};

本文标题:Java File解析

文章作者:wsylp

发布时间:2018年06月01日 - 10:06

最后更新:2020年01月02日 - 10:01

原始链接:http://wsylp.top/2018/06/01/Java-File解析/

许可协议: 本文为 wsylp 版权所有 转载请保留原文链接及作者。

-------------本文结束感谢阅读-------------