-
2021-02-26 13:57:12
public static final String TYPE_JPG = "jpg";
public static final String TYPE_GIF = "gif";
public static final String TYPE_PNG = "png";
public static final String TYPE_BMP = "bmp";
public static final String TYPE_UNKNOWN = "unknown";
/**
* byte数组转换成16进制字符串
* @param src
* @return
*/
public 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();
}
/**
* 根据文件流判断图片类型
* @param fis
* @return jpg/png/gif/bmp
*/
public static String getPicType(FileInputStream fis) {
//读取文件的前几个字节来判断图片格式
byte[] b = new byte[4];
try {
fis.read(b, 0, b.length);
String type = bytesToHexString(b).toUpperCase();
if (type.contains("FFD8FF")) {
return TYPE_JPG;
} else if (type.contains("89504E47")) {
return TYPE_PNG;
} else if (type.contains("47494638")) {
return TYPE_GIF;
} else if (type.contains("424D")) {
return TYPE_BMP;
}else{
return TYPE_UNKNOWN;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
//test code
System.out.println("图片格式1: " + getPicType(new FileInputStream(new File("D:\\3_副本.png"))));
System.out.println("图片格式2: " + getPicType(new FileInputStream(new File("D:\\3.png"))));
java 代码判断图片格式后缀名称
/** * 图片判断 */ private static String getFormatName(Object o) { try { // Create an image input stream ...
java中判断图片格式并且等比例压缩图片
最近项目中需要判断上传的图片必须是png,jpg,gif三种格式的图片,并且当图片的宽度大于600px时,压缩图片至600px,并且等比例的压缩图片的高度. 具体的实现形式: 大致的思路是: 判断根据 ...
[改善Java代码]使用forName动态加载类文件
动态加载(Dynamic Loading)是指在程序运行时加载需要的类库文件,对Java程序来说,一般情况下,一个类文件在启动时或首次初始化时会被加载到内存中,而反射则可以在运行时再决定是否需要加载一 ...
java代码实现图片处理功能。对图片质量进行压缩。
java图片处理有点头疼,找了很多资料.在这里进行一个汇总,记录下个人的体验,也希望对大家有所帮助. 需求:浏览的图片需要在1M一下. 1.真正对图片的质量进行压缩的(不是通过修改图片的高,宽进行缩小 ...
通过Java代码实现图片的放大和缩小
本文介绍的例子在Android安卓手机上测试通过. 先看看效果吧.可以看到这个开发好的安卓应用有三个按钮:Zoom In缩小图片,Zoom Out放大图片和Save保存. 初始页面: 可以在左边边框自 ...
如何使用Java代码给图片增加倒影效果
效果 倒影率为90%时的效果: 倒影率10%时的效果: 实现原理 倒影率作为参数rate 传入Reflection button的事件处理函数: CreateImageWithReflection这个 ...
如何通过Java代码判断当前的环境是否支持JRE 9
JDK9已经出来有一段时间了,因此很多流行的Java应用纷纷增添了对JDK9乃至JDK10的支持,比如Tomcat. 我们通过这个链接下载最新的Tomcat源文件包,总共7MB: https://to ...
java代码判断文件类型(判断文件后缀名)
1.两点需要注意 1.string.spilt("\\.")分割字符串成子字符串数组,以“.”分割,必须写成string.spilt("\\.")的方式,不能写 ...
用Java代码列出一个目录下所有的文件
1.File类 File类在java.io.File包中,所以要导入这个包. File类中用到的方法: boolean isDirectory() 测试此抽象路径名表示的文件是否是个目录 ...
随机推荐
Web语义化
在昨天和做SEO的同学聊了一会儿,当然我没有学会搜索引擎优化的技巧和知识,但在此之前一直对HTML5中header.footer.sidebar.article等标签嗤之以鼻,觉得这个和div没有什么 ...
搭建SSH框架所需Jar包及其解释
SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2 ...
hdu 4714
一个树形dp的题,又是一个涉及不深的领域 = =: 不过在网上看到了大神用很巧的思路解决了这个题: 大神的思路就是: 从树的底部往上看:如果一棵子树拥有两个及以上的叶子节点,可以将这棵子树与大树分离 ...
mysql编码和Java编码相应一览表
MySQL to Java Encoding Name Translations MySQL Character Set Name Java-Style Character Encoding Name ...
2015第23周四HTML特殊字符显示问题
1.项目中常采用EL表达式来输出后台内容,但测试发现它并不能完美处理要输出内容包含有<>或&等HTML特殊字符问题.先直接给出此问题JSTL的解决方案: 1.引入标签:
浅谈Log4j
1 什么是Log4j Log4j 是Apache为Java提供的日志管理工具.为了你快速理解Log4j的作用,我们用下面的代码说明Log4j的作用.我们为了调试程序,总是需要在程序使用System.o ...
走进 UITest for Xamarin.Forms
上一篇 走进 Prism for Xamarin.Forms 讲了简单的创建一个项目,然后添加了几个页面来回切换,这篇想先搞下 UITest 官方详细地址:https://developer.xam ...
Docker 创建ubuntu ,ssh,vnc 可连接
**************************************************************************************************** ...
svn 安装
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
谈谈mysql的悲观和乐观锁
悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念.之前有写过一篇文章关于并发的处理思路和解决方案,这里我单独将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍一 ...
更多相关内容 -
Java 对上传文件后缀格式的校验
2019-05-09 11:36:15在对格式校验的时候要考虑到用户或者攻击者对文件后缀进行的改变,导致上传的文件并不是我们需要的类型,从而对系统造成影响. 我们可以对常用的文件进行校验,如图片格式, 压缩格式,office word,Excel格式,以及其他...在web开发中,我们经常遇到一些上传文件的功能, 我们在对文件进行校验时,除了对文件大小进行校验外,还需要对文件的格式进行校验. 在对格式校验的时候要考虑到用户或者攻击者对文件后缀进行的改变,导致上传的文件并不是我们需要的类型,从而对系统造成影响.
我们可以对常用的文件进行校验,如图片格式, 压缩格式,office word,Excel格式,以及其他文件的格式进行校验.
代码如下:import java.io.*; import java.util.HashMap; import java.util.Map; /** * @ClassName FileFormatVerify * @Description 图片 pdf/wored/excel和各种压缩格式的校验 **/ public class FileFormatVerify { private static Map<String, Object> fileFormat = null; /** * @Description 将常用需要校验的格式和区别其他格式的前几个字节写入map * @Param [] * @return **/ public FileFormatVerify (){ //if(fileFormat == null ){ fileFormat = new HashMap<String, Object>(); //JPEG fileFormat.put("jpg","FFD8FFE0"); //PNG fileFormat.put("png","89504E47"); fileFormat.put("zip","504B0304"); fileFormat.put("rar","52617221"); //office类型,包括doc、xls和ppt // fileFormat.put("office","D0CF11E0"); /** * docx ,xlsx和zip 相同 doc 和 xls 相同 */ fileFormat.put("docx","504b0304"); fileFormat.put("doc","d0cf11e0"); fileFormat.put("xls","d0cf11e0"); fileFormat.put("xlsx","504b0304"); //fileFormat.put("pdf","255044462D312E"); fileFormat.put("pdf","255044462"); // } } /** * @Description 根据传入的文件获得后缀,获得指定文件格式byte[]数组中的前8位字符 * 将传入文件转化为byte[]数组,取前8位.判断传入文件的前8位和我们指定好的文件byte[]的前8位是否相同, * 如果相同则文件格式没有被篡改,反之,文件后缀格式被篡改 * @Param [file] * @return boolean 返回true 表示文件格式验证通过, 返回false 文件格式验证失败 **/ public boolean suffixVerify(File file){ String fileType = ""; String name = file.getName(); int i = name.lastIndexOf("."); // 获取文件的后缀 if(i > 0){ fileType = name.substring(i + 1); } //根据文件的后缀获取,获取文件的byte[]的前8位 if(fileFormat.containsKey(fileType.toLowerCase())){ String fileByte8 = String.valueOf(fileFormat.get(fileType.toLowerCase())); //获取传入文件的byte[]的前8位 byte[] bytes = inputStream2ByteArray(file); String compareByte = bytesToHexString(bytes); //如果传入文件的byte[]的前8位和我们定义好的byte[]的前8位相同,验证通过. if (compareByte.startsWith(fileByte8)){ //如果格式校验成功 return true; }else{ return false; } }else{ return false; } } /** * @Description 将file文件转化为byte[] * @Param [file] * @return byte[] **/ public byte[] inputStream2ByteArray(File file){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); FileInputStream fis = null; byte[] buffer = null; try { fis = new FileInputStream(file); //不用读取全部文件,只读文件前面的部分 byte[] b = new byte[1024]; fis.read(b); bos.write(b, 0, 1024); /** byte[] b = new byte[4]; int n; while ((n = fis.read(b)) != -1){ bos.write(b, 0, n); } */ buffer = bos.toByteArray(); }catch (FileNotFoundException e){ e.printStackTrace(); }catch (IOException e1){ e1.printStackTrace(); }finally { try { if(fis !=null){ fis.close(); } }catch (Exception e){ e.printStackTrace(); } try { if(bos !=null){ bos.close(); } }catch (Exception e){ e.printStackTrace(); } } return buffer; } /** * @Description 取byte[]前8位的为字符串 * @Param [src] * @return java.lang.String **/ public 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().substring(0, 8); return stringBuilder.toString(); } }
写一个测试类,测试是否有效.
import org.junit.Test; import java.io.File; /** * @ClassName TestFileFormatVerify * @Description 测试FileFormatVerify类 * @Author sun * Date 2019/5/8 14:57 * @Version 1.0 **/ public class TestFileFormatVerify { /** * @Description 测试传入参数后缀是否有篡改 * @Param [] * @return void **/ @Test public void TestSuffixReg(){ FileFormatVerify reg = new FileFormatVerify(); File file = new File("E:\\ideaFile\\RegEx\\src\\1.xlsx"); if (file.isFile() && file.exists()){ boolean b = reg.suffixVerify(file); System.out.println(b); } } /** * @Description 查看传入文件格式的前几位字符 * @Param [] * @return void **/ @Test public void CheckFileByte8(){ FileFormatVerify reg = new FileFormatVerify(); File file = new File("E:\\ideaFile\\RegEx\\src\\1.xlsx"); byte[] bytes = reg.inputStream2ByteArray(file); String s = reg.bytesToHexString(bytes); System.out.println(s); } }
注意:txt文件是一个纯文本文件,它的头文件字符是不固定的.
可以用测试类中的CheckFileByte8()方法. 对一个txt文件,改变其内容来查看它的头文件字符.我们仅仅通过对文件后缀格式的校验,并不能保证上传文件是安全的.
本篇文章也是参考 太阳守护者Sunner.
这篇文章有有关图片的更加安全的校验方式. 可以参考帮助我们加强对上传文件的安全控制. -
Java判断图片文件格式,不是根据文件后缀判断
2019-12-07 19:31:33// 读取文件的前几个字节来判断图片格式 byte [ ] b = new byte [ 4 ] ; try { fis . read ( b , 0 , b . length ) ; String type = bytesToHexString ( b ) . toUpperCase ( ) ; ...1、创建测试类(FileUtils.java)
package com.jeff.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class FileUtils { public static final String TYPE_JPG = "jpg"; public static final String TYPE_GIF = "gif"; public static final String TYPE_PNG = "png"; public static final String TYPE_BMP = "bmp"; public static final String TYPE_UNKNOWN = "unknown"; /** * * @description: 根据文件流判断图片类型 * @author: Jeff * @date: 2019年12月7日 * @param fis 文件输入流 * @return */ public static String getPicType(FileInputStream fis) { // 读取文件的前几个字节来判断图片格式 byte[] b = new byte[4]; try { fis.read(b, 0, b.length); String type = bytesToHexString(b).toUpperCase(); if (type.contains("FFD8FF")) { return TYPE_JPG; } else if (type.contains("89504E47")) { return TYPE_PNG; } else if (type.contains("47494638")) { return TYPE_GIF; } else if (type.contains("424D")) { return TYPE_BMP; } else { return TYPE_UNKNOWN; } } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } /** * * @description: byte数组转换成16进制字符串 * @author: Jeff * @date: 2019年12月7日 * @param src * @return */ public 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(); } public static void main(String[] args) { try { System.out.println("图片1格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\jie.jpg")))); System.out.println("图片2格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\1.png")))); System.out.println("图片3格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\2.gif")))); System.out.println("图片4格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\3.bmp")))); System.out.println("图片5格式: " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\jie.png")))); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
2、控制台输出结果
-
python如何去除文件后缀
2021-01-14 19:01:08python去除文件后缀的方法:1、调用os模块,用os模块的listdir()方法和walk()方法获取文件夹和文件名list_name=[]Makedir(outDir)fordirinos.listdir(fileDir):#获取当前目录下所有文件夹和文件(不带后缀)的名称...python去除文件后缀的方法:
1、调用os模块,用os模块的listdir()方法和walk()方法获取文件夹和文件名list_name = []
Makedir(outDir)
for dir in os.listdir(fileDir): # 获取当前目录下所有文件夹和文件(不带后缀)的名称
filePath = os.path.join(fileDir, dir) # 得到文件夹和文件的完整路径
if os.path.isdir(filePath) and not (filePath == outDir):
txt = outDir + dir + ".txt"
# 获取根目录路径、子目录路径,根目录和子目录下所有文件名
for root, subDir, files in os.walk(filePath):
2、使用splitext方法分割文件的后缀,写入txt文件中for fileName in files:
f = open(txt, 'a') # 以追加方式打开文件
fileName = os.path.splitext(fileName)[0] + '\n' # 分割,不带后缀名
f.write(fileName)
f.close()
完整代码如下:# 当前目录下所有文件夹下的文件名(不带后缀)写入对应txt文件(以文件夹命名)中
import os# 如果文件夹不存在创建文件夹
def Makedir(path):
folder = os.path.exists(path)
if (not folder):
os.makedirs(path)# 利用os.listdir()、os.walk()获取文件夹和文件名
def GetFileName(fileDir, outDir):
list_name = []
Makedir(outDir)
for dir in os.listdir(fileDir): # 获取当前目录下所有文件夹和文件(不带后缀)的名称
filePath = os.path.join(fileDir, dir) # 得到文件夹和文件的完整路径
if os.path.isdir(filePath) and not (filePath == outDir):
txt = outDir + dir + ".txt"
# 获取根目录路径、子目录路径,根目录和子目录下所有文件名
for root, subDir, files in os.walk(filePath):
for fileName in files:
f = open(txt, 'a') # 以追加方式打开文件
fileName = os.path.splitext(fileName)[0] + '\n' # 分割,不带后缀名
f.write(fileName)
f.close()
def main():
fileDir = "H:\\resultdata" # 输入文件夹路径
outDir = "H:\\resultdata\\FileData\\"
files = GetFileData(fileDir, outDir)# 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行
# 主要用于别人调用此代码时,不要进入该代码的入口
if __name__ == "__main__":
main()
更多Python知识,请关注:Python自学网!!
-
JAVA判断文件后缀名
2021-03-07 23:05:12} public static boolean isImageFile(String f) { //判断格式是否正确 String ext = f.substring(f.lastIndexOf(".") + 1); //截取点后面的字符串 lastIndexOf返回最后一次出现的位置 if ("JPG".equalsIgnoreCase... -
java删除不同后缀类型的文件(干货)
2018-11-30 11:21:19可以删除任何后缀格式文件 代码 //删除指定格式文件 public static void deleteFile(String path,String type) { File file = new File(path);// 里面输入特定目录 File temp = null; File[... -
java批量修改文件后缀名方法总结
2021-02-12 23:22:24突然需要改一堆文件的后缀名,所以想编程解决,话不多说直接上代码javaimport java.io.File;import java.util.Scanner;public class FileEdit {public static void renameFiles(String path, String oldExt, String ... -
大多数日志文件的后缀名是_log4j(添加日志)
2020-11-22 00:22:28log4j.properties该文件创建一个File类型的文件即可,注意文件名可以自己设置,后缀名需要做到准确无误,上图中的#相当于注释的作用,图中的输出端以及输出格式建议在java文件中写(打几个首字母,按alt+/快速生成的... -
java批量修改文件后缀的方法介绍
2021-02-27 14:19:33本篇文章给大家带来的内容是关于java批量修改文件后缀的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。突然需要改一堆文件的后缀名,所以想编程解决,话不多说直接上代码javaimport ... -
Java获取文件后缀的两种方式
2021-02-12 10:01:42在对文件进行操作的时候,我们经常需要用到文件的后缀。但是Java API中并没有提供获取文件后缀的方法。下面的工具方法可以帮助我们实现这个目的。方法1代码示例:package org.4spaces;import javax.imageio.ImageIO;... -
java 获取文件名(不包括文件的后缀)和文件重命名
2021-02-25 18:21:44获取文件名(不包括后缀)originalFileName.substring(0, originalFileName.lastIndexOf("."))文件重命名public void renameFile(String file, String toFile) {File toBeRenamed = new File(file);//检查要重命名的... -
ubuntu下可执行文件的后缀
2020-05-23 11:43:27可执行文件的后缀是 .exe 2 linux下 可执行文件没有扩展名,Linux不根据扩展名判断文件类型,而是根据文件的内容来判断。所以扩展名的作用是帮助人来识别文件,对于Linux系统本身来说没有什么用处。 .sh结尾表示... -
Python 相关文件常见的后缀名详解
2021-05-02 17:20:42本文只介绍相对常见的一些后缀名,至于一些特别冷门的文件格式,例如一些文章提到的pyz、pywz、rpy、pyde、pyp、 pyt等,并没有进行研究。因为这些扩展名资料很少,网上搜到的文章似乎都是同一个出处,只是简单提了... -
获取文件夹下,包含子目录内的所有指定后缀的文件
2021-01-07 10:10:20写了一个工具类,来获取指定文件夹下,包含子目录的所有指定后缀的文件。 注意一个问题,这是一个递归调用,在工程上使用可能会比较危险,注意进行保护。 package com.angus.demo; import java.io.File; import ... -
Java 获取文件的真实类型,修改后缀名也能识别出来
2020-12-15 09:21:48目录 前言 一、如何获取真实文件格式?... System.out.println("文件格式是"+name); } 总结 本文简单示例了Java如何获取真实文件格式的小demo,其中FileType枚举类可以在实际应用中添加更多对应的魔数,以增强识别读。 -
根据文件后缀名自动分类
2019-06-26 17:45:03根据文件后缀名不同,自动将文件分类至不同的文件夹 用 apache 的 FileUtils类来实现文件的复制功能,代码如下: //根据文件后缀名来实现文件自动分类至不同目录下 //定义要分类的文件所在的文件目录 private ... -
Linux系统怎样识别没有扩展名的文件类型? 用file命令解决
2021-05-08 21:05:08文件与目录是Linux文件系统的两个基本元素,(广义的)文件分为普通文件、目录文件、连接文件和特殊文件。可以通过file命令来识别各种不同的文件类型。linux对于文件的扩展名没有像windows要求的那么严格,所以在使用... -
EPLAN Electric P8 中的 EDZ 文件格式
2020-12-30 11:22:182017 年 3 月 18 日更新:目录1EDZ 文件的定义EDZ 是 EPLAN Data Archive Zipped(EPLAN 数据压缩文件包)的缩写,最早是专门为西门子定制的,现在已经 成为 EPLAN 中一种标准的部件格式: EPLAN Data Portal 交换格式。... -
linux的可执行文件是什么后缀
2020-03-05 09:32:26一般没有后缀,linux一般可以自动识别文件类型,有很多...有些时候可执行文件的后缀名为.out。Linux下的后缀名并没用windows下那么有用,Linux不根据扩展名判断文件类型,而是根据文件的内容来判断。所以扩展名的作... -
Java获取文件后缀名
2015-09-24 22:51:38import java.io.File; public class Test { /** *author: itmyhome */ public static void main(String[] args) { File file = new File("HelloWorld.... System.out.println(suffix); } } 作者: itmyhome -
正则表达式匹配文件后缀名
2020-07-08 14:14:11* 正则表达式匹配文件后缀名 */ public class ValidateFile { public static void main(String[] args) throws Exception { validateFilenameSuffix(); } public static void validateFilenameSuffix() -
Java之获取文件名、文件前缀名、文件类型(文件后缀名)
2018-09-26 15:30:34获取文件类型(后缀名): 方法一: split分割:如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".") String filename = "file.txt";// 文件名 String[] ... -
LaTex 编译生成的不同后缀文件解释
2020-07-21 13:29:08.cls latex的格式文件,规定了tex源文件的排版格局,称为类文件(class),一般使用\documentclass{}导入. .bst 是参考文件的格式文件,一般使用\bibliographystyle{}导入;相当于Endnote中的ens文件,也可以使用... -
读取某个文件夹下指定前缀和后缀的文件,并且返回指定文件的功能性Demo
2017-03-02 12:46:06读取某个文件夹下指定前缀和后缀的文件,并且返回指定文件的功能性Demo -
Java 获取指定目录下指定后缀名的文件名称
2018-12-10 17:07:39前面我们学习了File获取指定路径下的所有文件或者文件夹的名称,还有获取指定路径下所有的文件对象。这篇,我们分别利用这两个方法来做一个练习题,例如输出桌面文件中所有的png文件名称。最后简单看看文件过滤器的... -
java 获取文件的真实类型(不是根据文件的后缀名称判断类型)
2020-09-09 17:48:16java 获取文件的真实类型(不是根据文件的后缀名称判断类型) import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; import java.io... -
请问plink对VCF格式的数据进行格式转化时,会出现文件后缀为hh,nof和nosex文件呢
2018-07-21 09:47:28--plink, 改变输出文件格式 此时会生成两个文件:tmp.ped(基因型数据) 和 tmp.map 2、利用plink软件进行数据格式转换:./plink --noweb --file tmp --make-bed --out tmp 注意,输入文件和输出文件都不需要文件名... -
java根据文件流判断文件类型(后缀名)
2017-07-04 17:56:00java根据文件流判断文件类型(后缀名) import java.io.FileInputStream; public class FileType{ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder ...