Java에서 파일의 파일 확장자를 얻는 방법

Mohammad Irfan 2023년10월12일
  1. Java에서getExtension()메소드를 사용하여 파일 확장자 가져 오기
  2. Java에서lastIndexOf()메서드를 사용하여 파일의 파일 확장자 가져 오기
  3. Java에서 문자열 구문 분석을 사용하여 파일의 파일 확장자 가져 오기
  4. Java에서replaceAll()메소드를 사용하여 파일의 파일 확장자 가져 오기
  5. Java에서contains()lastIndexOf()메서드를 사용하여 파일의 파일 확장자 가져 오기
  6. Java에서삼항 연산자를 사용하여 파일의 파일 확장자 가져 오기
  7. Java에서stream()메소드를 사용하여 파일의 파일 확장자 가져 오기
  8. Java에서 Regex를 사용하여 파일 확장명 가져 오기
Java에서 파일의 파일 확장자를 얻는 방법

이 튜토리얼에서는 Java에서 파일 확장자를 가져 오는 방법을 소개하고 주제를 이해하기위한 몇 가지 예제 코드도 나열합니다.

Java에서getExtension()메소드를 사용하여 파일 확장자 가져 오기

파일의 확장자를 얻으려면FilenameUtils 클래스의getExtension()메소드를 사용할 수 있습니다. 이 메서드는 파일의 확장자를 반환합니다. 이 메소드는Apache 공용 라이브러리에 속하므로 프로젝트에서 JARs을 사용하려면 Apache 공식 사이트에서 라이브러리를 다운로드해야합니다.

import org.apache.commons.io.FilenameUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "student-records.pdf";
    String fe = FilenameUtils.getExtension(fileName);
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서lastIndexOf()메서드를 사용하여 파일의 파일 확장자 가져 오기

내장 메서드를 사용하지 않으려면lastIndexOf()메서드를 사용하는 주어진 코드 예제를 사용하여 파일 확장자를 가져옵니다. 문자열 메서드 만 포함하는 가장 간단하고 쉬운 방법입니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "student-records.pdf";
    String fe = "";
    int i = fileName.lastIndexOf('.');
    if (i > 0) {
      fe = fileName.substring(i + 1);
    }
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서 문자열 구문 분석을 사용하여 파일의 파일 확장자 가져 오기

이것은 하나를 포함한 여러 시나리오를 포함하는 또 다른 솔루션입니다 (dot(.)가 파일 경로에있는 경우). 이 메서드는 파일 경로 사이에 점 (.)이 있더라도 정확한 결과를 반환합니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    char ch;
    int len;
    if (fileName == null || (len = fileName.length()) == 0 || (ch = fileName.charAt(len - 1)) == '/'
        || ch == '\\' || ch == '.') {
      fe = "";
    }
    int dotInd = fileName.lastIndexOf('.'),
        sepInd = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));
    if (dotInd <= sepInd) {
      fe = "";
    } else {
      fe = fileName.substring(dotInd + 1).toLowerCase();
    }
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서replaceAll()메소드를 사용하여 파일의 파일 확장자 가져 오기

replaceAll()메소드를 사용하여 아래 예제에서했던 것처럼 파일 확장자를 얻을 수 있습니다. 이 방법에서는 정규식을 사용하고 그 결과를 변수로 수집합니다.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    fe = fileName.replaceAll("^.*\\.(.*)$", "$1");
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서contains()lastIndexOf()메서드를 사용하여 파일의 파일 확장자 가져 오기

contains()메소드는 지정된 문자가 문자열에 있는지 여부를 확인하는 데 사용되며lastIndexOf()메소드는substring()메소드에 전달 된 지정된 문자의 인덱스 값을 반환하여 가져옵니다. 파일 확장자. 이 코드에서 이러한 메서드를 사용하여 파일 확장자를 얻습니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains("."))
      fe = fileName.substring(fileName.lastIndexOf(".") + 1);
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서삼항 연산자를 사용하여 파일의 파일 확장자 가져 오기

삼항 연산자 (?, :)에 익숙하다면substring()lastIndexOf()메서드와 함께 사용하십시오. 코드 줄을 줄이고 결과를 단일 문으로 반환합니다.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains(".")) {
      int i = fileName.lastIndexOf('.');
      fe = i > 0 ? fileName.substring(i + 1) : "";
    }
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서stream()메소드를 사용하여 파일의 파일 확장자 가져 오기

Arrays 클래스의stream()메서드를 사용하여 파일 이름을 스트림으로 변환하고split()메서드를 사용하여 dot (.)에서 파일 이름을 분리 할 수 있습니다. 아래 예를 참조하십시오.

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains(".")) {
      fe = Arrays.stream(fileName.split("\\.")).reduce((a, b) -> b).orElse(null);
    }
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

Java에서 Regex를 사용하여 파일 확장명 가져 오기

이것은regex 패키지를 사용하는 또 다른 솔루션입니다. 이 Java 예제에서는 Pattern클래스의 compile()matcher()메서드를 사용하여 파일 확장자를 가져옵니다. 아래 예를 참조하십시오.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    final Pattern PATTERN = Pattern.compile("(.*)\\.(.*)");
    Matcher m = PATTERN.matcher(fileName);
    if (m.find()) {
      fe = m.group(2);
    }
    System.out.println("File extension is : " + fe);
  }
}

출력:

File extension is : pdf

관련 문장 - Java IO

관련 문장 - Java File