4

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

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

4

4 回答 4

5

一个文件只包含字节。您认为这些字节的含义完全取决于您。任何认为文件具有真实类型的想法都是一种错觉。例如,您可以将其命名为 sample.txt,但它实际上是一个 TAR 文件。

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

于 2013-01-27T17:48:53.493 回答
2

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

于 2013-01-27T17:47:46.367 回答
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 或压缩文件,这可以正常工作。

请参阅此链接。从文件中获取 Mime 类型。

于 2013-01-27T18:09:51.837 回答
0

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

于 2013-01-27T18:23:44.127 回答