java 判断文件类型
时间: 2023-08-22 08:07:54 浏览: 60
你可以使用 Java 的 Files 类和 ProbeContentType 方法来判断文件类型。具体代码如下:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileTypeChecker {
public static void main(String[] args) throws IOException {
Path file = Paths.get("path/to/your/file");
String fileType = Files.probeContentType(file);
if (fileType != null) {
System.out.println("File type: " + fileType);
} else {
System.out.println("Unable to determine file type.");
}
}
}
```
其中,`path/to/your/file` 是你要判断文件类型的文件路径。该代码会输出文件类型,如果无法判断文件类型则会输出 `Unable to determine file type.`。
相关问题
java判断文件类型
要判断文件类型,可以通过获取文件后缀名或者文件头来进行判断。
1. 获取文件后缀名
示例代码如下:
```java
File file = new File("path/to/file");
String fileName = file.getName();
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
if ("txt".equals(suffix)) {
// 文件类型为txt
} else if ("jpg".equals(suffix) || "jpeg".equals(suffix) || "png".equals(suffix)) {
// 文件类型为图片
} else {
// 其他文件类型
}
```
2. 获取文件头
示例代码如下:
```java
FileInputStream inputStream = new FileInputStream("path/to/file");
byte[] bytes = new byte[10];
inputStream.read(bytes, 0, bytes.length);
String fileType = getFileType(bytes);
if ("jpg".equals(fileType) || "png".equals(fileType)) {
// 文件类型为图片
} else {
// 其他文件类型
}
private static String getFileType(byte[] bytes) {
String type = "";
String fileHex = String.valueOf(bytes[0] & 0xFF) + String.valueOf(bytes[1] & 0xFF); // 获取文件的前两个字节的16进制数
switch (fileHex) {
case "8950":
type = "png";
break;
case "FFD8":
type = "jpg";
break;
default:
type = "unknown";
break;
}
return type;
}
```
需要注意的是,获取文件头的方式并不是百分之百准确,因为有些文件的头部可能会被修改,导致判断不准确。
simplemagic java 判断文件类型
可以使用Java API中的Files.probeContentType(Path path)方法来判断文件类型。该方法会返回文件的MIME类型。
示例代码:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String[] args) throws IOException {
Path path = Paths.get("path/to/file");
String fileType = Files.probeContentType(path);
System.out.println(fileType);
}
}
```
注意:该方法的判断依据是文件扩展名,因此可能会存在一定的误判风险。