Java通过文件头获取文件类型
2017-11-01 17:20
411 查看
public class FileCheckTypeUtil { private static Logger logger = LogManager.getLogger(FileCheckTypeUtil.class); static Map<String,String> map = null; static { map =new HashMap<>(); map.put("FFD8FF","jpg"); map.put("89504E","png"); map.put("474946","gif"); map.put("524946","webp"); map.put("000001","ico"); map.put("424D36","bmp"); map.put("00000A","tga"); map.put("49492A","tif"); } private static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } private static String checkType(String code){ return map.get(code); } /** * 获得图片后缀 * @param path * @return */ public static String getType(String path){ String type =""; FileInputStream fileInputStream =null; try { fileInputStream = new FileInputStream(path); byte[] b = new byte[3]; fileInputStream.read(b, 0, b.length); String code = bytesToHexString(b); code = code.toUpperCase(); type = checkType(code); }catch (Exception e){ logger.error("获取文件格式异常"); }finally { if(fileInputStream!=null){ try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return type; } public static void main(String[] args) throws IOException { String path = "E:\\redis64-2.8.9.zip"; System.out.println(getType(path)); } }
文件类型需要提前穷举
相关文章推荐
- Java依据文件头获取文件类型
- java通过文件头内容判断文件类型
- java通过文件头内容判断文件类型
- Android中Java根据文件头获取文件类型的方法
- Java依据文件头获取文件类型
- Java根据文件头获取文件类型
- Android中Java根据文件头获取文件类型
- Android中Java根据文件头获取文件类型
- Java根据文件头获取文件类型
- Android中Java根据文件头获取文件类型
- java通过文件头内容判断文件类型
- File Header文件头,通过检查文件头来判断文件类型
- 通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
- Java 通过使用File类获取文件信息
- (java)获取某文件夹下面所有的指定类型的文件名称,并根据情况返回可用的名称
- File Header文件头,通过检查文件头来判断文件类型
- Java中对图片文件的类型的获取
- java 通过反射获取泛型的类型
- php通过文件头检测文件类型通用代码类(zip,rar等)
- php通过文件头检测文件类型通用类(zip,rar…)