File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。
File类构造方法
分别使用三种构造方法创建对象如下
File file=new File("F:\\yunwendang\\t.txt");
if(file.isFile()) {
System.out.println("OK");
}else {
System.out.println("No");
}
file=new File("F:\\yunwendang","t.txt");
if(file.isFile()) {
System.out.println("OK");
}else {
System.out.println("No");
}
file=new File(new File("F:\\yunwendang"),"t.txt");
if(file.isFile()) {
System.out.println("OK");
}else {
System.out.println("No");
}
需要说明的是:首先 File 类是对文件系统的映射 并不是硬盘上真实的文件
所以 new File(“xxx.xxx”) 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件
更改文件名
//将文件名更改为UUID,保留文件格式
File file=new File(new File("F:\\yunwendang"),"t.txt");
System.out.println(file.getName());
String name=file.getName();
name=name.substring(name.lastIndexOf("."));
name=UUID.randomUUID().toString()+name;
if(file.renameTo(new File("F:\\yunwendang",name))) {
.out.println("yes");
}
创建文件夹
/*此处简写,注意对象不同的问题
mkdir()只能创建一级文件夹
mkdirs()可以创建多级文件夹
方法返回布尔类型
*/
System.out.println(new File("F:\\yun").mkdir());
System.out.println(new File("F:\\yu\\a").mkdir());
System.out.println(new File("F:\\yu\\a").mkdirs());
创建文件
//createNewFile()方法返回布尔类型
try {
file=new File("F:\\a.txt");
System.out.println("创建文件"+file.createNewFile());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
判断是否存在
//new File("F:\\a.txt").exists()这种写法会新创建一个对象,必然返回true
System.out.println("是否存在"+new File("F:\\a.txt").exists());
删除文件/文件夹
//如果是删除文件夹,则文件夹必须是空文件夹
System.out.println("删除文件或者空文件夹"+file.delete());
//如果使用new File("F:\\a.txt").delete()这种方式则删除失败,会新创建对象,类比集合中的remove
遍历目录
//区分两种方式的不同
file=new File("F:\\workSpace");
String []names=file.list(); //使用String类对象去映射文件名
for(String nam:names) {
System.out.println(nam);
}
System.out.println("~~~~~~~~~~");
File []files=file.listFiles(); //使用File类对象去映射文件名
for(File f:files) {
System.out.println(f.getName()); //getName又输出了String类型
}
考虑到程序的跨平台性(动态变化,File.separator)
//不同系统在声明文件路径的时候,使用的正反斜线不同,考虑到程序的跨平台性,使用File.separator代替正反斜线
绝对路径/相对路径
一个点 ./代表同级
两个点 ../上一级
向上多级 ../拼接
//有待补充