File:文件和目录(文件夹)路径名的抽象表示形式
构造方法:
- File(String pathname):根据一个路径得到File对象
- File(String parent, String child):根据一个目录parent和一个子文件child/目录child 得到File对象
- File(File parent, String child):根据一个parent对象和一个子文件child/目录child得到File对象
对以上方法解析 File(路径名)
常用方法:
- boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
- boolean canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。
- boolean canWrite() 测试应用程序是否可以修改此抽象路径名表示的文件。
- boolean delete() 删除此抽象路径名表示的文件或目录。
- boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
- File getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。
- String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
- String getName() 返回由此抽象路径名表示的文件或目录的名称。
- String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
- File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
- String getPath() 将此抽象路径名转换为一个路径名字符串。
- boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
- boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
- long length() 返回由此抽象路径名表示的文件的长度。
- File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
- File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
- String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
- String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
- boolean mkdir() 创建此抽象路径名指定的目录。
- boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
- boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。
- String toString() 返回此抽象路径名的路径名字符串。
- URI toURI() 构造一个表示此抽象路径名的 file: URI。
- long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
// 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
System.out.println("--------createNewFile------------");
File file = new File("e:\\a.txt");
System.out.println("createNewFile:" + file.createNewFile());
//创建文件或者文件夹没写盘符路径,那么,默认在项目路径下
File f2=new File("a.txt");
f2.createNewFile();
//返回此抽象路径名的绝对路径名字符串。
System.out.println(f2.getAbsolutePath());
System.out.println("--------mkdirs------------");
// 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
File file2 = new File("a\\b\\c");
System.out.println("mkdirs:" + file2.mkdirs());
System.out.println(file2.getAbsolutePath());
System.out.println("--------delete------------");
// 删除此抽象路径名表示的文件或目录。
System.out.println(f2.delete());
}
输出:
--------createNewFile------------
createNewFile:false
F:\developSource\eclipse\workSpace\day19_File\a.txt
--------mkdirs------------
mkdirs:false
F:\developSource\eclipse\workSpace\day19_File\a\b\c
--------delete------------
true
F:\developSource\eclipse\workSpace\day19_File\a.txt
//如果路径名相同,就是改名。 如果路径名不同,就是改名并剪切。
File f1=new File("2.jpg");
f1.createNewFile();
File f2=new File("a\\3.bmp");
System.out.println(f1.renameTo(f2));
输出:
true
// 创建文件对象
File file = new File("a\\3.bmp");
// 测试此抽象路径名表示的文件是否是一个目录
System.out.println("isDirectory:" + file.isDirectory());// false
//测试此抽象路径名表示的文件是否是一个标准文件
System.out.println("isFile:" + file.isFile());// true
//测试此抽象路径名表示的文件或目录是否存在。
System.out.println("exists:" + file.exists());// true
//测试应用程序是否可以读取此抽象路径名表示的文件
System.out.println("canRead:" + file.canRead());// true
//测试应用程序是否可以修改此抽象路径名表示的文件
System.out.println("canWrite:" + file.canWrite());// true
//判断是否隐藏
System.out.println("isHidden:" + file.isHidden());// false
isDirectory:false
isFile:true
exists:true
canRead:true
canWrite:true
isHidden:false
// 创建文件对象
File file = new File("a\\3.bmp");
System.out.println("getPath:" + file.getPath());
// 返回由此抽象路径名表示的文件或目录的名称。
System.out.println("getName:" + file.getName());
// 返回由此抽象路径名表示的文件的长度。
System.out.println("length:" + file.length());
// 返回此抽象路径名表示的文件最后一次被修改的时间。
System.out.println("lastModified:" + file.lastModified());
输出:
getPath:a\3.bmp
getName:3.bmp
length:0
lastModified:1491324885438
// * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
//public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
System.out.println("------ --public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组-----");
File f1=new File("H:\\java");
File[] fArr=f1.listFiles();
for (File f : fArr) {
System.out.println(f);
}
System.out.println("-----public String[] list():获取指定目录下的所有文件或者文件夹的名称数组------");
String[] s=f1.list();
for (String s1 : s) {
System.out.println(s1);
}
输出:
------ --public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组-----
H:\java\apache-maven-3.3.9
H:\java\apache-tomcat-7.0.57
H:\java\apache-tomcat-7.0.57 - bei
H:\java\apache-tomcat-7.0.57 - jenkins-8082
H:\java\apache-tomcat-7.0.57-Img-8081
H:\java\apache-tomcat-maven-hot-7080
H:\java\cache
H:\java\jdk1.7.0_60
H:\java\jre7
H:\java\svn
-----public String[] list():获取指定目录下的所有文件或者文件夹的名称数组------
apache-maven-3.3.9
apache-tomcat-7.0.57
apache-tomcat-7.0.57 - bei
apache-tomcat-7.0.57 - jenkins-8082
apache-tomcat-7.0.57-Img-8081
apache-tomcat-maven-hot-7080
cache
jdk1.7.0_60
jre7
svn
// * public String[] list(FilenameFilter filter)
//* public File[] listFiles(FilenameFilter filter)
File file = new File("E:\\aaa");
String[] s=file.list(new FilenameFilter() {
//断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
@Override
public boolean accept(File dir, String name) {
System.out.println(dir+"----"+name);
return new File(dir,name).isFile()&&name.endsWith(".jpg");
}
});
System.out.println("-------");
for (String string : s) {
System.out.println(string);
}
System.out.println("-------");
File[] fArray=file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir+"----"+name);
return new File(dir,name).isFile()&&name.endsWith(".jpg");
}
});
for (File file2 : fArray) {
System.out.println(file2.getName());
}
}
输出:
E:\aaa----a.jpg
E:\aaa----b
-------
a.jpg
-------
E:\aaa----a.jpg
E:\aaa----b
a.jpg