1、创建file的构造方法
2、file常见的方法
注意:mkdir只能创建单级文件夹,mkdirs可以创建多级文件夹。
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("F:\\test\\files\\test01.txt");
final boolean newFile = file.createNewFile();
System.out.println(newFile);
}
}
使用delete的细节:可以直接删除文件或者空的文件夹,有文件的文件夹不可以直接删除,并且不会走回收站。
3、获取并遍历(listFiles)
3.1、作用:获取文件夹下面的所有文件,包括文件和文件夹,返回一个数组。
基本使用如下所示:
import java.io.File;
public class Test02 {
public static void main(String[] args) {
File file = new File("F:\\test\\files");
final File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}
}
}
输出结果:
F:\test\files\test01.txt F:\test\files\test02
其中使用的细节:
4、练习题目
4.1、在当前模块下的aa文件夹中创建一个a.txt的文件
import java.io.File;
import java.io.IOException;
/**
* 在当前模块下的aa文件夹中创建一个a.txt的文件
*
* */
public class Question1 {
public static void main(String[] args) {
File file = new File("./aa");
file.mkdirs();
//将文件路径拼接
File file1 = new File(file,"a.txt");
try {
final boolean newFile = file1.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
4.2、定义一个方法找某个文件夹中是否有以*.txt结尾的文件(*暂时不需要考虑子文件夹)
import java.io.File;
/**
* 定义一个方法找某个文件夹中是否有以.txt结尾的文件(暂时不需要考虑子文件夹)
*
* */
public class Question2 {
public static void main(String[] args) {
File file = new File("F:\\test\\test01");
boolean flag = findFile(file);
System.out.println(flag);
}
//定义方法
public static boolean findFile(File file){
//获取所有的文件
final File[] files = file.listFiles();
for (File f : files) {
return f.isFile() && f.getName().endsWith(".txt");
}
return false;
}
}
4.3、定义一个方法找某个文件夹中是否有以**.txt结尾的文件(**需要考虑子文件夹)
import java.io.File;
/**
* 定义一个方法找某个文件夹中是否有以.txt结尾的文件(需要考虑子文件夹)
*/
public class Question3 {
public static void main(String[] args) {
File file = new File("F:/");
findTxt(file);
}
public static void findTxt(File file) {
//获取所有的文件
final File[] files = file.listFiles();
//判断是否非空
if (files != null) {
//遍历file
for (File f : files) {
//如果是文件就进行名称的判断并输出
if (f.isFile()) {
//判断是否为txt结尾
if (f.getName().endsWith(".txt")) {
System.out.println(f.getName());
}
} else { //否则调用递归
findTxt(f);
}
}
}
}
}
4.4、删除一个多级文件夹
思路:同样使用递归,先遍历文件夹,如果是文件,就直接删除,如果是文件夹,就进入递归,最后删除根文件夹。