Clase de archivo detallada basada en Java

 

Clase de archivo detallada basada en Java

Método de construcción

Método de miembro principal

Cómo obtener funciones 

Método de juzgar la función

Cómo crear la función de eliminación

Cruce de directorio

Búsqueda de expediente de caso

Búsqueda de archivos de casos (juego avanzado)

La creación no es fácil, si este blog es útil para ti, recuerda dejar un mensaje + me gusta.


La clase Java.io.File es una representación abstracta de los nombres de ruta de directorio y archivo , que se utiliza principalmente para operaciones como la creación, búsqueda y eliminación de archivos y directorios. Las instancias de la clase File son inmutables; es decir, una vez creadas, el nombre de ruta abstracto representado por el objeto File nunca cambiará.

Hay tres palabras importantes para recordar: archivo (archivo), directorio (carpeta), ruta (ruta)

Método de construcción

Resumen del método de construcción

Archivo (padre de archivo, hijo de cadena)

          Cree una nueva instancia de archivo basada en el nombre de la ruta abstracta principal y la cadena del nombre de la ruta secundaria.

Archivo (nombre de ruta de cadena)

          Cree una nueva instancia de archivo convirtiendo la cadena de nombre de ruta dada en un nombre de ruta abstracto.

Archivo (cadena principal, cadena secundaria)

          Cree una nueva instancia de archivo basada en la cadena del nombre de la ruta principal y la cadena del nombre de la ruta secundaria.

//File类的构造函数--练习
private static void show02(){
     File file= new File("F:\\04Java\\19java","Hello.java");
     System.out.println(file);
}

private static void show01(){
   File f1= new File("F:\\04Java\\19java");
   System.out.println(f1);//重写了ToString()方法

   File f3= new File("b.txt");
   System.out.println(f3);
}
private static void show03(){
     File file=new File("F:\\04Java\\19ava");
     File newFile = new File(file,"Hello.java");
     System.out.println(newFile);
}

Método de miembro principal

Método de obtención 

Resumen del método
 String getAbsolutePath()
          Devuelve la cadena de nombre de ruta absoluta de este nombre de ruta abstracto.
 String getName()
          Devuelve el nombre del archivo o directorio representado por este nombre de ruta abstracto.
 String getPath()
          Convierta este nombre de ruta abstracto en una cadena de nombre de ruta.
 long length()
          Devuelve la longitud del archivo representado por este nombre de ruta abstracto.
//获取文件绝对路径
private static void show04() {
     File file=new File("F:\\04Java\\19java");
     File absoluteFile=file.getAbsoluteFile();//返回File对象的绝对路径
     System.out.println(absoluteFile);
     File file2=new File("a.txt");
     File absoluteFile2=file2.getAbsoluteFile();//返回File对象的绝对路径
     System.out.println(absoluteFile2);
     System.out.println("____________________________");
}
//file1.getName()  获取最后一个路径名
private static void show02(){
     File file=new File("F:\\04Java\\19java");
     String name=file.getName();//最后的路径名
     System.out.println(name);

     File file1=new File("F:\\04Java\\19java\\小小张自由");
     String name1=file1.getName();//最后的路径名
     System.out.println(name1);
}
//file.getPath()  构造函数中传递什么值,就返回什么值
private static void show01(){
     File file=new File("F:\\04Java\\19java");
     String path=file.getPath();//传递的参数是什么,返回值就是什么
     System.out.println(path);
     File file1=new File("b.txt");
     String path1=file1.getPath();
     System.out.println(path1);
}
 //file.length() 获取文件的大小
private static void show03(){
     File file=new File("F:\\迅雷下载\\AirtestIDE-win-1.2.6.zip");
     long length=file.length();//文件名的大小,路径错误则为0
     System.out.println(length);//单位字节
}

Método de juicio

Resumen del método
 boolean exists()
          Pruebe si existe el archivo o directorio representado por este nombre de ruta abstracto
 boolean isDirectory()
          Pruebe si el archivo representado por este nombre de ruta abstracto es un directorio.
 boolean isFile()
          Pruebe si el archivo indicado por este nombre de ruta abstracto es un archivo estándar.
//用于判断构造函数中给定的路径是否为目录、文件
public static void main(String[] args){
	File file = new File("F:\\04Java\\19java");
	System.out.println(file.exists());//判断文件名是否存在
	System.out.println(file.isDirectory());//判断是否以文件夹结尾
	System.out.println(file.isFile());//判断是否以文件结尾
}

Crear y eliminar métodos

Resumen del método
 boolean createNewFile()
          Si y solo si no hay ningún archivo con el nombre especificado por esta ruta abstracta, se crea un nuevo archivo vacío indivisible.
 boolean delete()
          Elimine el archivo o directorio indicado por este nombre de ruta abstracto.
 boolean mkdir()
          Cree el directorio especificado por este nombre de ruta abstracto.
 boolean mkdirs()
          Cree el directorio especificado por este nombre de ruta abstracto, incluidos todos los directorios principales necesarios pero inexistentes.
//File类中CreateNewFile()方法只能新建文件,创建成功true
private static void show01()throws IOException{
    File file=new File("F:\\04Java\\19java\\99.txt");
    boolean newFile=file.createNewFile();//只能新建文件,创建成功true
    System.out.println(newFile);
}
//File类中Delete()方法
private static void show03(){
    File file=new File("F:\\04Java\\19java\\HelloJava");
    boolean delete=file.delete();//可以删除文件夹只能是空文件夹
    System.out.println(delete);

    File file1=new File("F:\\04Java\\19java\\99.txt");
    boolean delete1=file1.delete();//可以删除文件
    System.out.println(delete1);
    }
//File类中mkdir()和mkdirs()的方法创建单级、多级目录
private static void show02(){
    File file=new File("F:\\04Java\\19java\\HelloJava");
    boolean mkdir=file.mkdir();//创建单级目录
    System.out.println(mkdir);
    File file1=new File("F:\\04Java\\19java\\Hello\\Java");
    boolean mkdirs=file1.mkdirs();//创建多级目录
    System.out.println(mkdirs);
}

 Cruce de directorio

Resumen del método
 String[] list()
          Devuelve una matriz de cadenas que especifican los archivos y directorios en el directorio representado por este nombre de ruta abstracto.
 File[] listFiles()
          Devuelve una matriz de rutas abstractas que representan los archivos en el directorio indicado por esta ruta abstracta.
//file.listFiles();方法返回值是一个File[]
private static void show02(){
    File file=new File("F:\\04Java\\19java");
    File[]files=file.listFiles();
    for(File file1:files){
        System.out.println(file1);
    }
}

//file.list();方法返回值是一个String[]
private static void show01(){
    File file=new File("F:\\04Java\\19java");
    String[] list=file.list();
    System.out.println(list);//地址值
    for(String i:list){
        System.out.println(i);
    }
}

Búsqueda de expediente de caso

     1. Busque archivos con la extensión .pdf

     2. Búsqueda de directorio, no puede juzgar cuántos niveles de directorios, así que utilice la recursividad para recorrer todos los directorios.

     3. Al recorrer el directorio, los subarchivos obtenidos se juzgan si cumplen las condiciones por el nombre del archivo.

public class DiGuiDemo3 { 
    public static void main(String[] args) {
        // 创建File对象 
        File dir = new File("E:\\书籍"); 
        // 调用打印目录方法 
        printDir(dir); 
    }
    public static void printDir(File dir) { 
        // 获取子文件和目录 
        File[] files = dir.listFiles(); 
        
        // 循环打印 
        for (File file : files) { 
            if (file.isFile()) { 
                // 是文件,判断文件名并输出文件绝对路径 
                if (file.getName().endsWith(".PDF")) {
                    System.out.println("文件名:" + file.getAbsolutePath());
                }
            }else{ 
                // 是目录,继续遍历,形成递归 
                printDir(file); 
            } 
        } 
    } 
}

Búsqueda de archivos de casos (juego avanzado)

  Utilice la interfaz FileFilter o la interfaz FilenameFilter , es un filtro de archivos . Los parámetros de este método de interfaz son objetos de la clase FIle. Solo hay un método en la interfaz.

//Sun公司封装的两个文件过滤的接口
public interface FilenameFilter {
    boolean accept(File dir, String name);
}
public interface FileFilter {
    boolean accept(File pathname);
}

La función de búsqueda de archivos se puede realizar de cualquiera de las siguientes formas: el primer método usa la  interfaz FileFilter y el segundo método usa la interfaz FilenameFilter .

Una de las siguientes tres formas de jugar usa la clase de implementación de la interfaz , una usa la expresión Lambda y la otra usa la clase interna anónima

public static void main(String[] args) {
    File file=new File("E:\\书籍");
    //System.out.println(file);
    getAllFile(file);
}
//以下是三种玩法
public static void getAllFile(File file) {

   //方式一、使用FIleFilter接口的实现类
   File[] files = file.listFiles(new Demo09FileFilterImpl());//实现了FIleFilter接口
   //方式1. 使用Lambda表达式
   File[] files = file.listFiles((pathname)->{
         return pathname.getName().toLowerCase().endsWith(".pdf");//
   });

   //方式二、使用FilenameFilter
   File[] files =file.listFiles(new FilenameFilter() {
        @Override     //两个路径
        public boolean accept(File dir, String name) {
            return new File(dir,name).isDirectory()|| name.toLowerCase().endsWith("pdf");
         }
     });
}

创作不易,如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。

 

 

 

Supongo que te gusta

Origin blog.csdn.net/promsing/article/details/112832380
Recomendado
Clasificación