一、初始化:
File f1 = new File("//Users//Shared//JavaIOTest//Test01.txt");
File f2 = new File("//Users//Shared//JavaIOTest","Test01.txt");
File fl = new File("//Users//Shared//JavaIOTest");
File f3 = new File(fl,"Test01.txt");
//注释:f1f2f3指向的是同一个文件。
二、判断
1、判断File类成员是否为目录
System.out.println(f1.isDirectory());
System.out.println(fl.isDirectory());
输出:
false
true
2、判断是否为文件
System.out.println(f1.isFile());
System.out.println(fl.isFile());
输出:
true
false
3、判断文件或目录是否存在
System.out.println(f1.exists());
System.out.println(fl.exists());
输出:
true
true
4、判断文件是否可写(可读就用canRead())
System.out.println(f1.canWrite());
System.out.println(fl.canWrite());
在macOS中,canWrite对应的是“已锁定”。Windows中就是对应的是“只读”。
5、判断文件是否是隐藏的
System.out.println(f1.isHidden());
System.out.println(fl.isHidden());
在macOS系统下,可以通过terminal终端命令对文件或目录进行隐藏。
chflags hidden /xxx/xxx/xxx
可以通过以下命令取消隐藏:
chflags nohidden /xxx/xxx/xxx
三、创建
1、创建文件
注意使用createNewFile()的时候需要接收错误,接收错误一般使用抛出错误或者之前讲过的try catch语句。这里为了方便直接使用了throws。
public static void main(String[] args) throws Exception {
//创建文件
File fl = new File("//Users//Shared//JavaIOTest");
File newFile = new File(fl, "myNewTest02.txt");
boolean isSucceed = newFile.createNewFile();
System.out.println(isSucceed);
}
第一次运行的时候应该是输出true的,第二次再运行的时候便会输出false,因为该文件已经存在,不能重复输出。
2、创建目录
mkdir只能创建一级文件夹,mkdirs可以创建多级文件夹。
当前目录(/Users/Shared/JavaIOTest/)下没有文件夹。
//创建文件夹
File newDir = new File("//Users//Shared//JavaIOTest//First//Second");
System.out.println(newDir.mkdir());
System.out.println(newDir.mkdirs());
输出:
false
true
四、删除
只能删除空的文件夹xx.delete()
System.out.println((new File("//Users//Shared//JavaIOTest//First//Second")).delete());
五、重命名
renameTo()
fl.renameTo(new File("//Users//Shared//JavaIOTest(rename!)"));
六、移动
使用renameTo(),当在同一级目录中的时候,效果就是重命名。
当renameTo在不同的目录的时候,效果相当于移动。
也就是说renameTo是修改文件的目录属性,换句话说,就是修改文件的位置信息。
就上面的例子,我们把恢复刚才已改名的文件夹名字为“JavaIOTest”,然后把myNewTest02.txt移动到First目录中。
newFile.renameTo(new File("//Users//Shared//JavaIOTest//First//myNewTest02.txt"));
七、获取
1、获取名字
.getName() 返回String
2、获取父目录
.getParent() 返回String
3、获取最后修改时间
.lastModified() 返回String
4、获取文件字节数
.length() 返回int
5、获取当前目录我的所有文件与文件夹
.list() 返回String[]
.listFiles() 返回File[]
八、复制
使用copy(),需要抛异常。