文件处理
1、 File:文件和目录(文件夹)路径名的抽象变现形式(并不一定真实存在)
2、 构造方法:
a) File (String pathname) 根据一个路径得到File对象
b) File(String parent, String child)根据一个目录和一个子文件/目录得到File对象
c) File(File parent, String child )根据一个父File对象和一个子文件/目录得到File对象
3、 成员方法:
a) 创建功能
i. public boolean creatNewFile()创建文件,如果存在就不创建了。
如果没写路径,只是写了文件名则直接在本工程的工程目录下创建文件
ii. public boolean mkdir()创建文件夹,如果存在则不创建
iii. public boolean mkdirs()创建多级文件夹,如果存在则不创建
b) 删除功能
i. public boolean delete() 删除文件或目录的对象,要删除的文件夹内不能包含文件或者文件夹
c) 重命名功能
i. public boolean renameTo(File dest) dest是修改后的文件名
1. 如果修改后的文件和修改前的文件路径名相同则是重命名
2. 如果修改后的文件和修改前的文件路径名不相同,就是改名并剪切
d) 判断功能
i. public boolean isDirectory ()判断是否是目录
ii. public boolean isFile ()判断是否是文件
iii. public boolean exists ()判断是否存在
iv. public boolean canRead ()判断是否可读
v. public boolean canWrite ()判断是否可写
vi. public boolean isHidden ()判断是否隐藏
e) 获取功能
i. public String getAbsolutePath()获取绝对路径
ii. public String getPath()获取相对路径
iii. public String getName()获取文件名称
iv. public long length()获取文件大小,字节数
v. public long lastModified()获取最后一次修改时间毫秒值
vi. public String [] list()返回一个字符串数组,字符串数组中包含指定目录下所有文件和文件夹的名称
vii. public File listFiles() 获取指定目录下的所有文件夹或者文件夹的File数组对象。
viii. public String [] list(FilenameFilter filter)返回一个字符串数组,
字符串数组中包含指定目录下所有文件和文件夹的名称
FilenameFilter为文件名称过滤器接口,可以实现此接口的方法,
根据此方法获得文件夹对象下的文件夹和文件的名称以及路径
ix. public File listFiles(FilenameFilter filter) 获取指定目录下的所有文件夹和文件的File数组对象。
实例在下面给出
x. public File getParentFile() 以文件对象的形式返回文件路径名
xi. public String getParent() 以字符串格式返回文件路径
查找指定文件实例
两种方法
package test16_FileList;
import java.io.File;
import java.io.FilenameFilter;
/*
* 获取e盘路径下的.jpg文件
* 方法一:
* 1、获取文件目录下的所有文件或者文件夹的File数组
* 2、遍历该File数组,根据File对象进行判断
* 是否是文件
* 是:是否后缀为jpg
* 是,输出该文件名称
* 否:不处理
* 否:不处理
* 方法二:
* 1、实现文件过滤器接口,直接根据文件过滤器中的方法判断(内部类)
*/
public class FileDemo {
public static void main(String[] args) {
//方法一
// File file=new File("e:\\");
// File []fa=file.listFiles();
// for(File f:fa) {
// if(f.getName().endsWith("jpg")) {
// if(f.isFile()) {
// System.out.println(f.getName());
// }
// }
//
// }
//方法二
File file=new File("e:\\");
String []fs=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
//判断两方面:
// 1、是否是文件
// 2、是否后缀为.jpg
File f=new File(dir,name);
if((f.isFile())&&(name.endsWith(".jpg"))) {
return true;
}
return false;
}
});
for(String s:fs) {
System.out.println(s);
}
}
}