java 判断文件为音频文件 非扩展名方式
时间: 2023-12-06 11:02:08 浏览: 26
要判断一个文件是否为音频文件,除了可以通过扩展名的方式,还可以通过文件头信息来判断。常见的音频文件的文件头信息如下:
- MP3 文件的文件头信息为 "ID3"。
- WAV 文件的文件头信息为 "RIFF"。
- M4A 文件的文件头信息为 "ftypM4A"。
- FLAC 文件的文件头信息为 "fLaC"。
因此,我们可以读取文件的前几个字节,判断是否与上述文件头信息匹配。以下是示例代码:
```java
public static boolean isAudioFile(File file) {
try (FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis)) {
byte[] header = new byte[4];
bis.mark(4);
bis.read(header, 0, 4);
bis.reset();
String fileType = new String(header);
return fileType.equalsIgnoreCase("ID3") || fileType.equalsIgnoreCase("RIFF") || fileType.equalsIgnoreCase("ftypM4A") || fileType.equalsIgnoreCase("fLaC");
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
```
这段代码读取了文件的前四个字节,判断是否与上述文件头信息匹配,如果是则返回 true,否则返回 false。
注意:这种方法也不是绝对可靠的,因为有些文件的文件头信息可能被篡改或者不存在文件头信息。