专业的JAVA编程教程与资源

网站首页 > java教程 正文

边玩手机边学Java---Java基础之File

temp10 2024-11-07 12:31:35 java教程 6 ℃ 0 评论

1 File

1.1 API

文件的路径名和目录(文件夹)的路径名的抽象表示形式。

边玩手机边学Java---Java基础之File

? 构造方法

? public File(String pathname)

? public File(String parent,String child)

? public File(File parent,String child)

File file = new File("E:\\demo\\a.txt");

File file2 = new File("E:\\demo", "a.txt");

File file3 = new File("e:\\demo");

File file4 = new File(file3, "a.txt");

l 创建功能

public boolean createNewFile()//创建文件 如果存在这样的文件,就不创建了

public boolean mkdir()//创建文件夹(要求父文件夹存在) 如果存在这样的文件夹,就不创建了

public boolean mkdirs()//创建文件夹,如果父文件夹不存在,会帮你创建出来

l 删除功能

? public boolean delete()

* 注意:

* A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

* B:Java中的删除不走回收站。

* C:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

l 重命名功能

? public boolean renameTo(File dest)

* 如果路径名相同,就是改名。

* 如果路径名不同,就是改名并剪切。

l 判断功能

? public boolean isDirectory()//判断是否是目录

? public boolean isFile()//判断是否是文件

? public boolean exists()//判断是否存在

? public boolean canRead()//判断是否可读

? public boolean canWrite()//判断是否可写

? public boolean isHidden()//判断是否隐藏

l 基本获取功能

? public String getAbsolutePath()//获取绝对路径

? public String getPath()//获取相对路径

? public String getName()//获取名称

? public long length()//获取长度。字节数

? public long lastModified()//获取最后一次的修改时间,毫秒值

l 高级获取功能

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

? public File[] listFiles()//获取指定目录下的所有文件或者文件夹的File数组

l 过滤器

? public String[] list(FilenameFilter filter)

? public File[] listFiles(FilenameFilter filter)

1.2 实例1(过滤器)

/*

* 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称

* A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。

* B:获取的时候就已经是满足条件的了,然后输出即可。

* 要想实现这个效果,就必须学习一个接口:文件名称过滤器

* public String[] list(FilenameFilter filter)

* public File[] listFiles(FilenameFilter filter)

*/

File file = new File("e:\\");

String[] strArray = file.list(new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

return new File(dir, name).isFile() && name.endsWith(".jpg");

}

});

// 遍历

for (String s : strArray) {

System.out.println(s);

}

1.3 实例2(递归删除)

/*

* 需求:递归删除带内容的目录*

* 分析:

* A:封装目录

* B:获取该目录下的所有文件或者文件夹的File数组

* C:遍历该File数组,得到每一个File对象

* D:判断该File对象是否是文件夹

* 是:回到B

* 否:就删除

*/

private static void deleteFolder(File srcFolder) {

// 获取该目录下的所有文件或者文件夹的File数组

File[] fileArray = srcFolder.listFiles();

if (fileArray != null) {

// 遍历该File数组,得到每一个File对象

for (File file : fileArray) {

// 判断该File对象是否是文件夹

if (file.isDirectory()) {

deleteFolder(file);

} else {

file.delete();

}

}

srcFolder.delete();

}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表