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

时间:2013-01-27 17:45:15

标签: file

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

我如何知道样本文件的真实类型?

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

您可以使用Java Mime Magic等库来检查文件的假定MIME类型是否与其内容匹配。

答案 2 :(得分:0)

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或压缩,这可以正常工作。

请参阅此链接。 Get the Mime Type from a File.

答案 3 :(得分:0)

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