一、File的声明
声明的File不需要是存在的,我们声明的路径可以是存在的,也可以是不存在的。因为我们只是声明,并不一定会用。
方法名 | 说明 |
---|---|
File(String pathname) | 通过给定的字符串路径指明一个File文件(或者文件夹) |
File(String parent,String child) | 通过两个字符串拼接形成最终字符串路径,指明一个File文件(或者文件夹) |
File(File parent,String child) | 实际上也是通过两个字符串拼接形成最终字符串路径,指明一个File文件(或者文件夹) |
public static void main(String[] args) {
//通过给定的字符串路径指明一个File文件(或者文件夹)
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa.txt");
//通过两个字符串拼接形成最终字符串路径,指明一个File文件(或者文件夹)
File file1=new File("D:\\Code\\ideaCode\\FileTestDemo","aa.txt");
String path1="D:\\Code\\ideaCode\\FileTestDemo";
String path2="aa.txt";
File file2=new File(path1,path2);
String path3="D:\\Code\\ideaCode\\FileTestDemo";
File file3=new File(path3,"aa.txt");
String path4="aa.txt";
File file4=new File("aa.txt",path4);
//实际上也是通过两个字符串拼接形成最终字符串路径,指明一个File文件(或者文件夹)
File file5=new File("D:\\Code\\ideaCode\\FileTestDemo");
String path5="aa.txt";
File file6=new File(file3,path5);
}
二、File的创建
方法名 | 说明 |
---|---|
boolean createNewFile() | 创建一个文件 |
boolean mkdir() | 创建一个文件夹 |
boolean mkdirs | 创建一个多级文件夹 |
2.1 创建一个文件
我们在这里创建一个aa.txt文本文件,初始无aa.txt文件存在
public static void main(String[] args) throws IOException {
//声明一个文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa.txt");
//创建文件(若文件已存在,则返回false,否则返回true)
boolean newFile = file.createNewFile();
System.out.println(newFile);
}
运行结果:
2.2 创建一个文件夹
我们在这里创建一个名为bb的单级文件夹,初始无bb单级文件夹存在
public static void main(String[] args) throws IOException {
//声明一个单级文件夹
File file1=new File("D:\\Code\\ideaCode\\FileTestDemo\\bb");
//创建单级文件夹(若文件夹已存在,则返回false,否则返回true)
boolean mkdir = file1.mkdir();
System.out.println(mkdir);
}
运行结果:
2.3 创建一个多级文件夹
我们在这里创建一个名为cc的多级文件夹,初始无cc多级文件夹存在
public static void main(String[] args) throws IOException {
//声明一个多级文件夹
File file2=new File("D:\\Code\\ideaCode\\FileTestDemo\\cc\\aa\\bb\\dd\\ee");
//创建多级文件夹
boolean mkdirs = file2.mkdirs();
System.out.println(mkdirs);
}
运行结果:
三、File的删除
调用delete()方法仅能删除文件和空文件夹,若一个文件夹中含有文件或者文件夹,则需要将文件夹中的文件和文件夹清空,使之成为空文件夹才能将之删除。
方法名 | 说明 |
---|---|
boolean delete() | 删除一个文件或者空文件夹 |
删除我们刚刚创建的bb空文件夹
public static void main(String[] args) throws IOException {
//声明bb文件夹
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\bb");
//调用delete()方法删除bb空文件夹
boolean delete = file.delete();
System.out.println(delete);
}
运行结果:
删除我们刚刚创建的aa.txt文件
public static void main(String[] args) throws IOException {
//声明aa.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa.txt");
//调用delete()方法删除aa.txt文件
boolean delete = file.delete();
System.out.println(delete);
}
运行结果:
删除我们刚刚创建的cc多级文件夹(直接调用delete()方法无法删除cc多级文件夹,因为cc多级文件夹并不是空文件夹)
public static void main(String[] args) throws IOException {
//声明cc多级文件夹
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\cc");
//调用delete()方法无法直接删除cc多级文件夹
boolean delete = file.delete();
System.out.println(delete);
}
运行结果:
四、File的获取与判断
方法名 | 说明 |
---|---|
File[] listFiles() | 获取一个文件夹孩子层所有文件和文件夹,并存入数组 |
boolean isFile() | 判断一个File对象是否为文件 |
boolean isDirectory() | 判断一个File对象是否为文件夹 |
boolean exists() | 判断一个File对象是否存在 |
String getName() | 获取当前File对象的全名(包括后缀名) |
4.1 获取一个文件夹孩子层所有文件和文件夹,并存入数组
我们来遍历一个aa非空文件夹,aa非空文件夹孩子层所有文件及文件夹如下图所示:
public static void main(String[] args) throws IOException {
//声明aa非空文件夹
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa");
//调用listFiles()方法获取aa文件夹孩子层所有文件和文件夹
File[] files = file.listFiles();
//使用forEach()语句遍历File数组
for (File file1 : files) {
System.out.println(file1);
}
}
运行结果:
4.2 判断一个File对象是否为文件
我们先来判断aa.txt它是不是一个文件
public static void main(String[] args) throws IOException {
//声明aa.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa.txt");
//调用isFile()方法判断对象是否为文件
boolean file1 = file.isFile();
System.out.println(file1);
}
运行结果:
我们再来判断bb.txt它是不是一个文件(无意外,它不是一个文件)
public static void main(String[] args) throws IOException {
//声明bb.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\bb.txt");
//调用isFile()方法判断对象是否为文件
boolean file1 = file.isFile();
System.out.println(file1);
}
运行结果:
4.3 判断一个File对象是否为文件夹
我们来判断bb.txt它是不是一个文件夹。
public static void main(String[] args) throws IOException {
//声明bb.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\bb.txt");
//调用isDirectory()方法判断对象是否为文件夹
boolean directory = file.isDirectory();
System.out.println(directory);
}
运行结果:
4.4 判断一个File对象是否存在
exists()方法可以判断一个File对象是否存在(不论是文件还是文件夹均可判断),我们声明一个虚假的cc.txt文件,来判断它是否存在。结果为不存在。
public static void main(String[] args) throws IOException {
//声明cc.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\cc.txt");
//调用exists()方法判断File对象是否存在
boolean exists = file.exists();
System.out.println(exists);
}
运行结果:
4.5 获取当前File对象的全名(包括后缀名)
public static void main(String[] args) throws IOException {
//声明cc.txt文件
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\cc.txt");
//调用getName()方法获取当前File对象的全名(包括后缀名)
String name = file.getName();
System.out.println(name);
}
运行结果:
五、File案列练习(根据文件类型分类)
获取一个非空文件夹孩子层所有文件及文件夹,并按照后缀名来对它们进行划分,并统计各个类型文件数量(因此我们无需查看文件夹,只需查看孩子层文件即可)
文章来源:https://www.toymoban.com/news/detail-417454.html
public static void main(String[] args) throws IOException {
//声明aa非空文件夹
File file=new File("D:\\Code\\ideaCode\\FileTestDemo\\aa");
//创建Key值类型为String,Value值类型为Integer的Map集合,其中Key表示文件类型,Value表示此文件类型的数量
Map<String,Integer> map=new HashMap<>();
//调用listFiles()方法读取aa非空文件夹孩子层所有文件及文件夹
File[] files = file.listFiles();
//遍历File数组
for (File file1 : files) {
//若此对象为文件,对它文件类型进行划分
if(file1.isFile()){
//获取此文件全名(包括后缀名)
String nameAll=file1.getName();
//将文件名按"."进行分割,存入String数组中
String[] nameArr=nameAll.split("\\.");
//获取文件后缀名(文件的后缀名一定为最末尾元素)
String nameLast=nameArr[nameArr.length-1];
//如果集合中存在此文件类型
if(map.containsKey(nameLast)){
//通过文件类型获取此文件类型的数量
int count=map.get(nameLast);
//数量加1
count++;
//更新文件类型的数量
map.put(nameLast,count);
}else{
//若集合中不存在此文件类型,则将此文件类型存入集合中,数量为1
map.put(nameLast,1);
}
}
}
//普通方法输出集合
System.out.println(map);
}
运行结果:
文章来源地址https://www.toymoban.com/news/detail-417454.html
到了这里,关于Java基础之File的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!