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のリストを見つけることができます。

また、Java7にはオプションがあります

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 に答える