2

我想检查文件的文件类型。我想到了幻数,但是如何在 Java 中使用它。

我只想在我的程序中允许文本文件和过滤文件,如 jpg 等。一些想法,我能做什么。

private String path;
private String fileText;
private String textLine;
public LoadModel(String path) {

    this.path = path;
    this.fileText = "";

    FileReader read = null;
    BufferedReader bufRead = null;

    if (path != null && new File(path).exists()
            && !(new File(path).isDirectory())) {


        try {

            read = new FileReader(path);

            bufRead = new BufferedReader(read);
            do {
                try {
                    this.textLine = bufRead.readLine();
                } catch (IOException ex) {
                    Logger.getLogger(LoadModel.class.getName()).log(Level.SEVERE, null, ex);
                }
                if (this.textLine != null) {
                    this.fileText = this.fileText + this.textLine + "\n";
                }
            } while (this.textLine != null);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(LoadModel.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        HinweisDialogController.hinweisDialogOK("Die angegebene Datei existiert nicht");

    }
}
4

3 回答 3

6

在这里,您可以找到可用于通过代码示例识别 java 中的 mime 类型的 API 列表。

在 java 7 中也有一个选项

Files.probeContentType(path)

.

于 2013-01-17T10:53:39.640 回答
3

你可以试试java.nio.file.Files.probeContentType哪个是专为确定文件内容类型而设计的。例如这个测试

    System.out.println(Files.probeContentType(Paths.get("1.xml")));
    System.out.println(Files.probeContentType(Paths.get("1.txt")));

印刷

text/xml
text/plain

有关详细信息,请参阅 API

于 2013-01-17T10:59:52.663 回答
1

如果您需要您的代码在早期版本的 JDK(不是 JDK7)上工作,您可以使用Apache Tika's MimeType检测器,它有MimeType#detect()方法

更多信息在这里

于 2013-01-17T11:22:10.973 回答