File类构造方法
构造方法有三种形式:
方法 | 说明 |
File(String pathname) | 通过路径名创建一个新 File 实例 |
File(File parent, String child) | 根据父目录路径File实例和子目录或文件路径创建一个新 File 实例 |
File(String parent, String child) | 根据父目录路径和子目录或文件路径创建一个新 File 实例 |
public class Test {
public static void main(String[] args) {
//File(String pathname)
File file = new File("D:\\a");
//File(File parent, String child)
file = new File(file,"b");
//File(String parent, String child)
file = new File("D:\\a","b");
}
}
注意:File类代表一个特定的文件或者目录;具体代表文件还是目录是要根据调用构造方法时的赋值来判断;如果所赋之值为路径,则 file对象 代表路径即目录;如果所赋之值为 完整路径 + 文件名;则 file 对象 代表文件;如下:
public class Test {
public static void main(String[] args) {
File file = new File("D:\\adm");
System.out.println(file);
file = new File("D:\\adm\\新建日记本文档.jnt");
System.out.println(file);
}
}
isDirectory 和 isFile
分别为判断是否为文件夹、判断是否为文件;用法如下:
public class Test {
public static void main(String[] args) {
File file = new File("D:\\adm\\新建日记本文档.jnt");
//判断是否为文件夹
if(file.isDirectory()) {
System.out.println("YES");
}else {
System.out.println("NO");
}
//判断是否为文件
if(file.isFile()) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}
}
输出结果:
NO
YES
getName
获取文件名或问价夹名;若 file 为文件对象则为获取文件名,若为路径(目录)则获取最后一级文件夹名;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\adm\\新建日记本文档.jnt");
System.out.println(file.getName());
file = new File("D:\\a\\b\\c");
System.out.println(file.getName());
}
}
输出结果:
新建日记本文档.jnt
c
mkdir、mkdirs 和 createNewFile
创建一级文件夹、创建多级文件夹和创建文件;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
//创建文件夹 :一级文件夹(根目录)
File file = new File("D:\\adm");
if(file .mkdir()) {
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
//创建多级文件夹
file = new File("D:\\a\\b\\c\\d");
if(file.mkdirs()) {
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
//创建文件
file = new File("D:\\说明.txt");
try {
if(file.createNewFile()){
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
结果如下:
创建成功
创建成功
创建成功
delete、renameTo 和 exists
删除、修改文件名和判断是否存在;
import java.io.File;
public class Test {
public static void main(String[] args) {
//删除
File file = new File("D:\\a\\b\\c\\d");
if(file.delete()) {
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
//重命名
file = new File("D:\\说明.txt");
if(file.renameTo(new File("D:\\shuoming.txt"))) {
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
//判断是否存在
file = new File("D:\\shuoming.txt");
if(file.exists()) {
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
结果如下:
删除成功
修改成功
Yes
getParent、getPath 和 getParentFile
获取父级路径、获取当前路径和获取父级路径所对应的File对象;
import java.io.File;
public class Test {
public static void main(String[] args) {
//获取父级路径
File file = new File("D:\\adm\\新建日记本文档.jnt");
System.out.println(file.getParent());
//获取当前路径
System.out.println(file.getPath());
//获取父级路径对应的File对象
System.out.println(file.getParentFile());
}
}
结果如下:
D:\adm
D:\adm\新建日记本文档.jnt
D:\adm
list 和 listFiles
获取文件夹所有子文件(夹)所组成的数组和获取文件夹所有子文件(夹)对应的File对象所组成的数组;
import java.io.File;
public class Test {
public static void main(String[] args) {
//获取文件夹所有子文件夹的名字
File file = new File("D:\\a");
String [] names = file.list();
for (String name : names) {
System.out.println(name);
}
//获取文件夹所有子文件对应的File对象构成的数组
File [] files = file.listFiles();
for (File f : files) {
System.out.println(f.getPath());
}
}
}
结果和文件夹结构:
separator
拼接;Linux系统只能识别 “/” 的文件目录,而不能识别 “\\” 的文件目录;因此需要采用拼接技术来实现代码在各个系统之间的兼容性;
import java.io.File;
public class Test {
public static void main(String[] args) {
//separator 拼接
File file = new File("D:\\adm\\新建日记本文档.jnt");
file = new File("D:"+file.separator+"adm"+file.separator+"新建日记本文档.jnt");
System.out.println(file.separator);
System.out.println(file);
}
}
输出结果如下:
\
D:\adm\新建日记本文档.jnt