método común de Java en la presentación clase File

prefacio

utilizado recientemente en el proceso de adquisición de aprendizaje SpringBoot Añadir fotos 当前工程路径método, se encontraron de repente a Archivo Esta clase no está muy familiarizado con, y aprender acerca rápidamente. Se encontró que la obtención 当前工程路径método de esto simplemente no es la clase de archivos, por supuesto, también puede File obtener una clase, pero un poco menos elegante. Impotente, ya que el archivo de pensamiento y no en la mano para aprender acerca de él, de paso.

Obtener la ruta actual

Aquí por primera vez nos gustaría contar sobre cómo obtener la ruta actual de la misma.

//方法一
String classpath = System.getProperty("user.dir");
//方法二
File file = new File("");
String absolutePath = file.getAbsolutePath();

El resultado es: E: \ CodeTest \ Java \ Maven \ Blog

Uso básico

1, la construcción de una clase de archivos, obtener alguna información básica

//如果只给定一个路径的话,是以当前的 project 作为起始路径的
//如果是\\file则是以当前盘符为起始路径
File file = new File("a");
System.out.println(file.getAbsolutePath()); //根据给定的字符串构造出来一个绝对路径,不检查存在与否
System.out.println(file.getPath());  //得到最后一级目录或者文件的名称
System.out.println(file.getName());
System.out.println(file.length());  //得到文件大小

Una salida correspondiente a la siguiente:

E: \ CodeTest \ Java \ experto \ blogs \ a
un
un
0

2, se determina si existe una ruta dada, y una ruta a un archivo o

File c = new File("c");
System.out.println(c.exists());  //判断文件是否存在
System.out.println(c.isFile());  //判断是否是一个文件
System.out.println(c.isDirectory());  //判断是否是一个文件夹

3, crear archivos y carpetas

File d = new File("d");
boolean newFile = d.createNewFile();  //只会创建文件,所以传入的字符串不能是一个路径
System.out.println(newFile);

//创建单级目录,如果目录存在则返回false,亦即不用先判断在创建了,直接创建即可
//而且要注意,你输入什么就创建什么目录,例如 "d.txt",就会创建一个 d.txt的目录,不会推断你是想创建一个文本
boolean mkdir = d.mkdir();
System.out.println(mkdir);

//创建多级目录
File e = new File("d\\e");
boolean mkdirs = e.mkdirs();
System.out.println(mkdirs);

4, atraviesan el directorio actual, y obtener la carpeta actual en la lista de archivos y carpetas.

estructura de directorios es la siguiente:
Aquí Insertar imagen Descripción

//对目录的遍历
//要求给定的必须是目录
File d = new File("d");
//只会遍历当前目录下的文件以及文件夹
String[] list = d.list();
assert null != list;
for (String s : list) {
    System.out.println(s);
}

System.out.println("=================");
//这个方法打印出全路径,这里的全路径分两种情况:
//1、绝对的全路径  2、以工程为根路径的全路径
File[] files = d.listFiles();
assert null!=files;
for (File file : files) {
    System.out.println(file);
}

Los resultados son como sigue:

c.txt
d.txt
e
f.pdf
=================
d \ c.txt
d \ d.txt
d \ e
d \ f.pdf

Tenga en cuenta que sólo recibe la ruta del archivo y el archivo en la carpeta actual, si el contenido de las subcarpetas, que necesitan para recorrer de forma recursiva.
la lista de diferencias () y listFiles () en que
la lista reciben el nombre de la ruta del archivo y el archivo en la carpeta actual, volver String []
listFiles () Obtiene la ruta del archivo absoluta y archivo en la ruta de la carpeta actual para volver al archivo []

5, mientras que el filtro de recorrido de directorio actual a cabo ciertos archivos

La estructura de directorios:
Aquí Insertar imagen Descripción

File d = new File("d");
//文件过滤器的使用
//list(FilenameFilter)参数为一个函数式接口的过滤器
//这里我们只要以 .txt 结尾的文件
String[] list = d.list((dir, name) -> name.endsWith(".txt"));
assert null != list;
for (String s : list) {
    System.out.println(s);
}
System.out.println("============");
//listFiles(FilenameFilter)、listFiles(FileFilter)
//下面是对FileFilter的实现,返回以 文件夹以及以.txt结尾的文档(这里的文档也包括文件夹)
File[] files = d.listFiles(pathname -> (pathname.getName().endsWith(".txt") || pathname.isDirectory()));
for (File file : files) {
    System.out.println(file);
}

Los resultados son como sigue:看到把以.pdf结尾的文件过滤掉了

c.txt
d.txt
============
d \ c.txt
d \ d.txt
d \ e

Publicados 141 artículos originales · ganado elogios 131 · vistas 210 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_41621362/article/details/105272040
Recomendado
Clasificación