File 如何在java中检查真实的文件类型?

File 如何在java中检查真实的文件类型?,file,File,我将创建一个sample.txt文件。然后我将sample.txt的扩展名改为sample.tar 如何知道示例文件的真实类型?您可以使用诸如之类的库来检查文件的假定MIME类型是否与其内容匹配。文件仅包含字节。你认为这些字节意味着什么完全取决于你。任何文件具有真实类型的概念都是一种错觉。例如,您可以将其命名为sample.txt,但实际上它是一个TAR文件 有一些工具可以猜测文件格式可能是什么。然而,这只是一个猜测。文件没有“真实”的文件类型 import java.net.FileNameM

我将创建一个
sample.txt
文件。然后我将
sample.txt
的扩展名改为
sample.tar


如何知道示例文件的真实类型?

您可以使用诸如之类的库来检查文件的假定MIME类型是否与其内容匹配。

文件仅包含字节。你认为这些字节意味着什么完全取决于你。任何文件具有真实类型的概念都是一种错觉。例如,您可以将其命名为sample.txt,但实际上它是一个TAR文件

有一些工具可以猜测文件格式可能是什么。然而,这只是一个猜测。文件没有“真实”的文件类型

import java.net.FileNameMap;
import java.net.URLConnection;

public class FileUtils {

public static String getMimeType(String fileUrl) throws java.io.IOException {
    FileNameMap fileNameMap = URLConnection.getFileNameMap();
    String type = fileNameMap.getContentTypeFor(fileUrl);

    return type;
}

public static void main(String args[]) throws Exception {
    System.out.println(FileUtils.getMimeType("fileName.extension"));
     //for a.txt
    // output : text/plain
}
}
如果文件不是rar或压缩文件,则此操作可以正常工作


请参阅此链接

如果您只想知道某个文件是否是tar文件,可以读取字节257、258、259、260、261。如果它们是ASCII“ustar”,则是tar存档

我不是说真正的文件类型。我想知道这个文件是不是tar文件。你可以尝试去纠正它(至少在内存中)。如果此操作成功,则它是有效的tar文件。如果不成功,则不成功。您可以查看文件的开头(大多数通用工具都是这样做的),但这不会告诉您该文件是否有效。您的意思是想知道如何取消对文件的排序以检查其是否有效吗?是,我想在解压java编码中的文件之前检查一下。请帮助我。你会怎么做?除了分享。我如何编写java代码。请帮助我