import java.io.File;
import java.io.IOException;
import java.util.Date;
//创建文件(路径以及文件的建立)
//File文件路径的两种获取方式
//File 文件路径1 = new File("文件磁盘"+File.separator+"文件路径");
//File 文件路径2 = Paths.get("文件磁盘","文件路径").toFile();
public static void code1() {
//创建一个文件。定义需要操作的文件路径
//eg:创建一个G:\javaTest\java.txt
File file = new File("G" + File.separator + "javaTest" + File.separator + "java.txt");
//首先得进行路径的判断,如果路径存在就直接判断文件是否存在
//如果路径不存在,这个时候就可以调用mkdirs函数进行创建路径
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//判断这个文件是否存在。如果该文件存在,进行删除。
//如果不存在,则创建
if (file.exists()) {
file.delete();
} else {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//查看文件信息(文件的大小。文件最后一次修改日期。判断是目录还是文件)
public static void code2() {
//以G:\javase\numtest 这个已经存在的文件来说
File file = new File("G:" + File.separator + "javase" + File.separator + "numtest.txt");
//首先我们要确定文件存在,并且是一个文件而不是一个路径,我们才能进行操作
if (file.exists() && file.isFile()) {
System.out.println("文件大小:" + file.length());
System.out.println("最后一次修改日期:" + new Date(file.lastModified()));
System.out.println("这是一个文件:" + file.isFile());
System.out.println("这是一个目录:" + file.isDirectory());
} else {
System.out.println("文件不存在");
}
}
//查看当前路径下的所有文件和目录
public static void code3() {
//以路径G:\javase路径为例
File file = new File("G:" + File.separator + "javase");
//首先判断路径目录是否存在,并且输出目录下的所有东西
if (file.exists() && file.isDirectory()) {
//创建一个文件数组,将目录中的名字都保存进去。再遍历输出
File[] result = file.listFiles();
//遍历方法一
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
//遍历方法二
for (File file1 : result) {
System.out.println(file1);
}
}
}
//查看当前路径下所有文件和目录的子目录以及文件。(递归操作)
public static void listAllFiles(File file) {
//首先判断这是不是一个目录。如果是则继续遍历该目录。如果不是,那它就是一个文件,直接打印
if (file.isDirectory()) {
File[] result = file.listFiles();//将子目录内容保存在文件数组中
if (result != null) {
for (File file1 : result) {
listAllFiles(file1); //递归。一直进入这个路径。直到这个路径是个文件
}
}
} else {
System.out.println("文件名的绝对路径是:" + file);
}
}
public static void main(String[] args) {
code1();
code2();
code3();
//用G:\javase该路径说明
File file1= new File("G:" + File.separator + "javase2");
listAllFiles(file1);
//用子线程进行列出处理,可以避免线程堵塞问题
new Thread(()->{
File file = new File("G:" + File.separator + "javase");
listAllFiles(file);
},"输出线程").start();
System.out.println("开始进行文件输出");
}