>  기사  >  Java  >  Java 파일 작업 및 파일 필터 소개(예제 포함)

Java 파일 작업 및 파일 필터 소개(예제 포함)

不言
不言원래의
2018-09-20 15:08:573651검색

이 기사는 Java 파일 작업 및 파일 필터(예제 포함)에 대한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

파일 작업

Java는 파일을 작업할 수 있도록 File 클래스를 제공합니다. FIle은 파일이나 폴더의 추상 표현, 즉 객체 표현입니다. 일반적으로 사용되는 여러 가지 방법을 요약했습니다.

  • File(File parenrt,String child), FIle(String pathname), File(String parent,String child), 세 가지 구조 함수는 다음과 같습니다. 다양한 방식으로 인스턴스화됩니다.

  • getAbsolutePath(): 이 파일 또는 폴더의 절대 경로를 반환합니다.

  • getName(): 반환 이 폴더 또는 파일의 이름

  • getPath(): 구성의 매개변수

    #🎜🎜인 이 폴더 또는 파일의 표현을 반환합니다. 매개변수 #
  • createNewFIle(): 새 파일 만들기

  • mkdir(): 새 디렉터리를 만듭니다. 레이어는 하나만 만들 수 있습니다. 생성됨, # 🎜🎜#

  • mkdirs(): 다중 레이어 디렉터리 만들기
  • isDirectory(): 여부를 ​​결정합니다. 디렉토리입니다#🎜 🎜#
  • isFile(): 파일인지 확인
  • list(): 파일 또는 디렉터리 이름의 문자를 반환합니다. 문자열 배열
  • listFiles(): 파일 또는 디렉터리에 대한 파일 객체의 배열을 반환합니다.
  • #🎜🎜 #
  • 파일 필터:

  • listFiles() 함수는 파일 객체 목록을 반환하며 때로는 .txt 파일과 같은 특정 파일만 필요하고 나머지는 그렇지 않습니다. 반환할 필요는 없지만 배열을 반환한 후에 조작할 수 있지만 이는 약간 복잡합니다. Java는 필터링 목적을 달성하기 위해 이 인터페이스 개체를 listFiles의 매개 변수에 전달합니다. 인터페이스의 수락은 가져온 각 파일에 대해 호출됩니다. true를 반환하면 배열에 저장됩니다.

FilenameFilter: #🎜🎜 ##🎜🎜 # FilenameFilter 필터에서는 파일이나 디렉터리의 이름만 사용할 수 있습니다. dir 매개변수는 파일의 FIle 개체가 아닌 파일이 있는 현재 개체이므로 일반적으로 name 매개변수만 사용합니다. 🎜🎜#
public interface FilenameFilter {
   boolean accept(File dir, String name);
}

FileFilter: # 🎜🎜#

FileFilter 필터, 매개변수 pathname은 파일의 FIle 객체이며 이를 통해 파일의 모든 속성을 가져올 수 있습니다(예: pathname.getName). ()는 파일 이름으로, 간접 FIlenameFilter로 변환될 수 있습니다. 강력한

public interface FileFilter {
    boolean accept(File pathname);
}

예:

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/**
 * 自定义的局部内部类来自定义过滤器类,
 */
public class Generics {
    //自定义过滤器类实现FilenameFilter接口
    static class MyFilenameFilter implements FilenameFilter{
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    //自定义过滤器类实现FileFilter接口
    static class MyFileFilter implements FileFilter{
        @Override
        public boolean accept(File pathname) {
            return pathname.getName().endsWith(".java");//只获取.java结尾的文件或目录
        }
    }
    public static void main(String[] args) {
        File file =new File("D:");
        //方式一:FileFilter过滤器
        File[] files=file.listFiles(new MyFileFilter());
        for (File f:files){
            System.out.println(f.getName());
        }
        //方式二:FilenameFilter过滤器
        File[] files2=file.listFiles(new MyFilenameFilter());
        for (File f:files2){
            System.out.println(f.getName());
        }
        //list()函数只能接受FilenameFilter对象,匿名内部类的形式实现,
        //或者可以理解为为什么既然有FileFilter,而还要FilenameFilter
            //  1.对于listFiles来说,FilenameFilter可以直接操作name,而不需要通过File对象获取
            //  2.对于list来说,它只能是FilenameFilter过滤器,因为得到的是String,已经不是File了
        String[] filenames = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".java");
            }
        });
        for(String str:filenames){
            System.out.println(str);
        }
    }
}

위 내용은 Java 파일 작업 및 파일 필터 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.