JAVA 는 폴 더 를 재 귀적 으로 옮 겨 다 니 며 지정 한 형식의 파일 을 가 져 옵 니 다.

JAVA 가 지정 한 폴 더 를 옮 겨 다 니 며 지정 한 파일,File 클래스 호출 방법 을 가 져 옵 니 다.
이 코드 는 File 클래스 를 사용 하여 지정 한 파일 과 폴 더 를 연결 합 니 다.매개 변 수 를 옮 겨 다 닐 폴 더 로 입력 하 십시오.폴 더 전 체 를 재 귀적 으로 옮 겨 다 니 며 지정 한 파일 을 가 져 옵 니 다.예 를 들 어.pdf 파일 획득 등.그 다음은 파일 입력 흐름 과 출력 흐름 을 사용 하여 파일 을 저장 하 는 것 이다.다음은 코드 를 드 리 겠 습 니 다.이상 하 게 던 지지 않도록 주의 하 세 요.
     public static void getfiles(File file1) throws IOException {
    File[] files = file1.listFiles();
    for (File file : files) {
        if (file.isFile()) {//       
            if (file.getName().toLowerCase().endsWith(".pdf")) {//       pdf  
                System.out.println(file.getName());
                FileInputStream fis = new FileInputStream(file);//      
                File dir = new File("D:\\wenJian");//          ,           
                if (!dir.exists()) {//           
                    dir.mkdir();
                }
                FileOutputStream fos = new FileOutputStream(dir + "\\" + file.getName());//    
                byte[] b = new byte[1024];
                int len;
                while ((len = fis.read(b)) != -1) {
                    fos.write(b, 0, len);
                }
                fis.close();
                fos.close();
            }
        } else {
            getfiles(file);//         
        }
    }
}

JAVA 는 또 하나의 필터 파일 클래스 FileFilter 클래스 를 제공 하 였 으 며,다음은 다른 방법 을 소개 합 니 다.
FileFilter 클래스 를 사용 하면 File 클래스 가 인 스 턴 스 를 만 들 때 구조 함 수 를 호출 할 수 있 습 니 다.선택 한 지정 한 파일 을 필터 합 니 다.사실 File.listFiles 방법 이 호출 될 때,그 는 FileFilter 의 추출 방법 accept()를 호출 합 니 다.클래스 계승 FileFilter 클래스 를 만 들 고 accept()방법 을 실현 하 며,자신의 필터 기준 을 정의 할 수 있 습 니 다.여기 서 저 는 Lambda 표현 식 으로 원 하 는 대상 파일 을 작성 합 니 다.물론 필요 한 서 류 를 스스로 확인 할 수도 있다.
  public static void getFiles(File file1) throws IOException {
        File[] files = file1.listFiles(pathname -> pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".pdf") ||
                pathname.getName().toLowerCase().endsWith(".md"));///  .pdf   .md  
        for (File file : files) {
            if (!file.isDirectory()) {//     ,   
                FileInputStream fis = new FileInputStream(file);
                File dir = new File("J:\\heima");//          
                if (!dir.exists()) {//           
                    dir.mkdir();
                }
                FileOutputStream fos = new FileOutputStream("J:\\heima\\" + file.getName());//    
                byte[] b = new byte[1024];
                int len;
                while ((len = fis.read(b)) != -1) {
                    fos.write(b, 0, len);
                }
                fis.close();
                fos.close();
                System.out.println(file.getName());
            } else {
                getFiles(file);//    
            }
        }
    }

좋은 웹페이지 즐겨찾기