在java中获取文件扩展名

时间:2020-01-09 10:35:33  来源:igfitidea点击:

在Java中进行文件I / O操作时,我们可能需要知道文件的扩展名。在这篇文章中,我们将看到一个Java文件来获取文件扩展名。由于没有直接的Java File API方法来获取文件扩展名,因此我们必须使用Java String类方法来实现。

另一个选择是使用Apache IO,其中FilenameUtils具有方法getExtension()来获取文件名。但这需要在类路径中使用Apache IO jar。

获取文件扩展名Java程序

1.在String类中,有一个lastIndexOf(int ch)方法,该方法给出指定字符最后一次出现的索引,使用它可以获取最后一个'。'的索引,使用subString()可以获取字符串在最后一个点之后。这样,我们可以获取所传递文件的扩展名。

public class FileExtension {
  public static void main(String[] args) throws IOException {
    File file = new File("F:\theitroad\links.txt");
    String extension = getFileExtension(file);
    System.out.println("Extension is- " + extension);
    
    file = new File("F:\theitroad\Ubuntu Page.html");
    extension = getFileExtension(file);
    System.out.println("Extension is- " + extension);
  }
	
  private static String getFileExtension(File file) {
    // null and file exist check
    if(file == null || !file.exists()){
      return "File not found";
    }
    
    String fileName = file.getName();
    int extIndex = fileName.lastIndexOf(".");
    // -1 is returned if index is not found
    if(extIndex == -1) {
      return "";
    }else {
      return fileName.substring(fileName.lastIndexOf("."));
    }
  }
}

输出:

Extension is- .txt
Extension is- .html

如果我们不希望出现附带的".",请使用

fileName.substring(fileName.lastIndexOf(".") + 1

2.使用Apache IO库,该库为FilenameUtils类提供方法getExtension(),该方法返回最后一个点后的文件名的文本部分。如果没有扩展名,则返回空字符串,如果file为null,则返回null。

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FilenameUtils;

public class FileExtension {
  public static void main(String[] args) throws IOException {
    File file = new File("F:\theitroad\links.txt");
    String extension = getFileExtensionApache(file);
    System.out.println("Extension is- " + extension);
    
    file = new File("F:\theitroad\Ubuntu Page.html");
    extension = getFileExtensionApache(file);
    System.out.println("Extension is- " + extension);
  }
		
  private static String getFileExtensionApache(File file) {
    return FilenameUtils.getExtension(file.getName());
  }
}

输出:

Extension is- txt
Extension is- html