File类作用
java.io.File代表操作系统的文件/文件夹对象
通过File对象操作文件和文件夹
File类构造器
File(String pathname)通过路径名字符串来创建File对象
/*
目标:File类构造方法(重点)
File类说明:
File代表操作系统的文件/文件夹对象
File类提供了诸如:获取文件的信息、删除文件、创建文件(文件夹)等功能。
File类构造器:
1.File(String pathname) 通过字符串路径创建File对象(重要)
2.File(String parent, String child) 通过父路径和子路径创建File对象
3.File(File parent, String child) 通过父路径File对象和子路径创建File对象
注意:
在windows中路径支持: \和/ 默认是\
Linux/MacOS: 路径只支持 /
字符串中\要写两个: \\
*/
public class Demo01 {
public static void main(String[] args) {
// 1.File(String pathname) 通过字符串路径创建File对象(重要) 定位到一个文件或文件
File file = new File("D:\\MyFileTest");
// 2.File(String parent, String child) 通过父路径和子路径创建File对象
File file1 = new File("D:\\MyFileTest", "aaa");
// 3.File(File parent, String child) 通过父路径File对象和子路径创建File对象
File file2 = new File("D:\\MyFileTest");
File file3 = new File(file2, "aaa");
}
}
File创建功能
方法名 | 说明 |
---|---|
public boolean createNewFile() | 创建一个新的文件 |
public boolean mkdir() | 创建一个单级文件夹 |
public boolean mkdirs() | 创建一个多级文件夹 |
/*
目标:File类创建功能(重点)
File类创建功能:
1.boolean createNewFile() 创建新文件, true表示创建成功
2.boolean mkdir() make directory 创建单级文件夹, true表示创建成功
3.boolean mkdirs() 创建多级文件夹, true表示创建成功
*/
public class Demo02 {
public static void main(String[] args) throws IOException {
// 1.boolean createNewFile() 创建新文件
//文件存在时,创建失败
File file = new File("D:\\MyFileTest\\aaa\\1.txt");
System.out.println(file.createNewFile());
// 2.boolean mkdir() make directory 创建一级文件夹
File file1 = new File("D:\\MyFileTest\\aaa\\ccc");
System.out.println(file1.mkdir());
/*File file3 = new File("D:\\MyFileTest\\aaa\\ccc\\1.txt");//只会创建文件夹,文件夹1.txt
System.out.println(file3.mkdir());*/
// 3.boolean mkdirs() 创建多级文件夹 (推荐)
File file2 = new File("D:\\MyFileTest\\aaa\\eee\\yyy");
System.out.println(file2.mkdirs());
}
}
File删除功能
方法名 | 说明 |
---|---|
public boolean delete() | 删除文件或文件夹 |
/*
目标:File类删除功能(重点)
File类删除功能:
boolean delete() 可以删除文件和文件夹,删除成功返回true
删除目录时的注意事项:
delete方法直接删除不走回收站。
如果删除的是一个有内容文件夹,需要先删除文件夹中的内容,最后才能删除文件夹。
*/
public class Demo03 {
public static void main(String[] args) {
// 1.boolean delete() 删除文件和文件夹,删除成功返回true
File file = new File("D:\\MyFileTest\\aaa\\ccc");
// 2.删除空文件夹
System.out.println(file.delete());
// 3.有内容的文件夹
//先删除内容,再删除空文件夹
File file1 = new File("D:\\MyFileTest\\aaa\\bbb\\Demo03.java");
File file2 = new File("D:\\MyFileTest\\aaa\\bbb\\Demo04.java");
System.out.println(file1.delete());
System.out.println(file2.delete());
File file3 = new File("D:\\MyFileTest\\aaa\\bbb");
System.out.println(file3.delete());
}
}
绝对路径和相对路径
/*
目标:绝对路径和相对路径(了解)
绝对路径: 从盘符开始
File file1 = new File("D:\\MyFileTest\\aaa\\bbb.flv");
相对路径: 不带盘符,默认从当前项目下的开始寻找
File file1 = new File("模块名\\xxx.png");
注意:
要使用相对路径.模块一定要放到项目里面
*/
public class Demo04 {
public static void main(String[] args) {
// 绝对路径
// 相对路径: 当前项目下的开始寻找
File file = new File("study_day10\\abc");
System.out.println(file.exists());
}
}
File获取功能
/*
目标:File类获取功能(了解)
File类可以获取文件或文件夹相关信息
String getAbsolutePath() 获取绝对路径
String getName() 获取名字, 获取路径中最后一个\右边的
String getParent() 获取父路径,最后一个\左边的
long length() 获取"文件"大小, 文件夹不行
*/
public class Demo05 {
public static void main(String[] args) {
// 创建一个File定位到文件
File file1 = new File("study_day10\\abc\\1.txt");
// 创建一个File定位到文件夹
File file2 = new File("study_day10\\abc");
// String getAbsolutePath() 获取绝对路径
System.out.println(file1.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
// String getName() 获取名字
System.out.println(file1.getName());
System.out.println(file2.getName());
// String getParent() 获取父路径
System.out.println(file1.getParent());
System.out.println(file2.getParent());
// long length() 获取文件的大小
System.out.println(file1.length());
System.out.println(file2.length());
}
}
File判断功能
/*
目标:File类判断功能(了解)
File类判断功能:
1.boolean isDirectory() 是否是文件夹, 如果是文件夹返回true
2.boolean isFile() 是否是文件, 如果是文件返回true
3.boolean exists() 判断是否存在, 只要存在就返回true
*/
public class Demo06 {
public static void main(String[] args) {
// 创建一个File定位到文件
File file = new File("study_day10\\abc");
// 1.boolean isDirectory()
System.out.println(file.isDirectory());
// 2.boolean isFile()
System.out.println(file.isFile());
// 3.boolean exists()
System.out.println(file.exists());
}
}
遍历递归找出所有java文件
/*
目标:列出文件夹中的所有java文件,如果文件夹中有文件夹也要找出来
// 1.创建一个File对象定位aaa文件夹
// 2.定义一个方法listJava(File dir), 列出某个文件夹中的所有java文件
// 2.1.调用listFiles()显示文件夹中的所有内容
// 2.2.遍历获取每个内容
// 2.3.判断如果是文件,并且是.java文件,打印这个文件
// 2.4.如果是文件夹,再次调用listJava
*/
public class Demo10 {
public static void main(String[] args) {
File file = new File("D:\\MyFileTest\\aaa");
listJava(file);
}
public static void listJava(File file){
File[] files = file.listFiles();
for (File f:files){
if(f.isFile()){
boolean b = f.getName().endsWith(".java");
if(b){
System.out.println(f.getName());
}
}else{
listJava(f);
}
}
}
}
最后
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。