java如何判断文件是否为图片

不要说用后缀名去判断 文件后缀名可以改的

java中提供了ImageInputStream类来对文件是否为图片进行判断,示例如下:

/** 
  * åˆ¤æ–­æ–‡ä»¶æ˜¯å¦ä¸ºå›¾ç‰‡<br> 
  * <br> 
  * @param pInput æ–‡ä»¶å<br> 
  * @param pImgeFlag åˆ¤æ–­å…·ä½“文件类型<br> 
  * @return æ£€æŸ¥åŽçš„结果<br> 
  * @throws Exception 
  */ 
public static boolean isPicture(String  pInput, 
                           String pImgeFlag) throws Exception{ 
  // æ–‡ä»¶åç§°ä¸ºç©ºçš„场合 
  if(Check.isNull(pInput)){ 
   // è¿”回不和合法 
   return false; 
  } 
  // èŽ·å¾—文件后缀名 
  String tmpName = pInput.substring(pInput.lastIndexOf(".") + 1, 
                              pInput.length()); 
  // å£°æ˜Žå›¾ç‰‡åŽç¼€åæ•°ç»„ 
  String imgeArray [][] = { 
    {"bmp", "0"}, {"dib", "1"}, {"gif", "2"}, 
    {"jfif", "3"}, {"jpe", "4"}, {"jpeg", "5"}, 
    {"jpg", "6"}, {"png", "7"} ,{"tif", "8"}, 
    {"tiff", "9"}, {"ico", "10"} 
  }; 
  // éåŽ†åç§°æ•°ç»„ 
  for(int i = 0; i<imgeArray.length;i++){ 
   // åˆ¤æ–­å•ä¸ªç±»åž‹æ–‡ä»¶çš„场合 
   if(! Check.isNull(pImgeFlag) 
      && imgeArray [i][0].equals(tmpName.toLowerCase()) 
   && imgeArray [i][1].equals(pImgeFlag)){ 
    return true; 
   } 
   // åˆ¤æ–­ç¬¦åˆå…¨éƒ¨ç±»åž‹çš„场合 
   if(Check.isNull(pImgeFlag) 
      && imgeArray [i][0].equals(tmpName.toLowerCase())){ 
    return true; 
   } 
  } 
  return false; 
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-20
把文件转换下成图片,如果转换成功,那就是图片,失败的话,那就不是呗本回答被提问者采纳
第2个回答  2012-03-20
用方法截取.jpg或者.gif格式的,然后判断嘛。File file = new File(the new file path);
FindFolderAllFiles(CString csFolderName)
{
CFileFind f;
BOOL bFind=f.FindFile(csFolderName+ "\\*.* ");
while(bFind)
{
bFind = f.FindNextFile();
if(f.IsDots()) continue;
if(f.IsDirectory())
{ FindFolderAllFiles(csFolderName+ "\\ "+f.GetFileName()); }
//Get File Name
TRACE(_T( "%s\r\n "),f.GetFileName());//f.GetFileName..
}
}追问

后缀名不可靠···
等待更好的方法··

追答

不判断后缀名你怎么弄;。。。你把取到的文件的名字保存到string里面。然后用int index = charAt(".").取得下标。然后substring(index,index+4)可以取到.jpg,然后你判断一下呗。

追问

文件后缀名可以改的 我问题中提到了 你把txt文件后缀名改成jpg你看的程序能显示图片吗?

第3个回答  2015-10-01
可是判断文件名的后缀来区分
第4个回答  2018-08-01
public static boolean isPicture(InputStream input) {
if (input == null) {
return true;
}
BufferedImage bi = null;
try {
bi = ImageIO.read(input);
} catch (IOException e) {
FileLog.errorLog(e, "文件上传失败,原因:");
}
return (bi != null && bi.getHeight() > 0 && bi.getWidth() > 0);
}

Java根据文件内容判断是否是图片。
回答:这样,当把一个非图片文件的扩展名改为jpg、gif或者bmp时,就能绕过限制。所以必须得通过读取文件内容来进行判断。这里提供两种实现代码。1、ImageInputStream iis = ImageIO.createImageInputStream(resFile);\/\/resFile为需被Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);if...

java 文件 夹里面是否含有图片
简单方案:可以通过文件夹内文件的后缀名字判断。复杂的要通锅都区每个文件内容,判断文件是否为图片。不同格式的图片文件,二进制文件内容结构是不同的,但是这样就比较麻烦,而且文件读写,效率不高。import java.io.File;import java.io.IOException;import java.util.HashSet;import java.util.Set;pub...

java图像上传中如何判断是否是jpg格式
通过文件的二进制流来判断一张图片是否为jpg格式的图片。原理很简单:所有JPG\/JPEG格式的图片都是以十六进制的'FF D8'作为文件开始,'FF D9'作为文件结束标志。FF等为16进制数据,占文件的1 byte。如果没有带相机信息的jpg图片,第7, 8, 9, 10这4位上分别是字符'JFIF'的16进制表示,用UltraEdit...

java 怎么判断一个文件的类型,比如说是txt,jpg,xls,exe,等等,说后缀名...
区别在于文件结构,常见的图片、xls等等都是有相对固定的文件结构的,比如说总是以哪几个字节开始,后面跟的是什么数据,数据有多长等等。要判断文件类型,一般常用的方法是也是基于这个原理,通过文件前面的固定字节来判断,java也不例外,百度搜索一下 java 文件 类型 判断,第一个就是。

怎么判断一个文件的类型,比如是不是图片
图片的格式,一般后缀为jpg,JPGE,Png等等,就像看一个文件是不是音频格式,为Mp3,WAv,MiD等

如何判断某个文件是否为二进制文件,用Java代码来实现
1.JPEG我们知需要比对文件头的$ff,d8这两个字符,而不用读取最后的两个结束标识了。2.TGA,ICO,CUR只需比对第三个与第五个字符即可。3.PNG比对[89][50]这两个字符。4.GIF比对[47][49][46]与第五个字符。废话不多说了,利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的...

JAVA中怎样获取文件夹里的图片 并把图片在Panel里显示出来
这是第一个程序文件:import java.awt.*;import javax.swing.*;public class ImagePanel extends JPanel { private Image img;public ImagePanel(Image img) { this.img = img;Dimension size = new Dimension(img.getWidth(null),img.getHeight(null));setSize(size);setPreferredSize(size);setMi...

java中怎么读取文件内容(java中如何读取文件)
2、方式一:Javacode\/以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。当然也是可以读字符串的。3、一:用Scanner可以很好的达到读写文件的作用。但是学习过程中,由于Scanner的构造函数的参数是InputStream,搞得有点糊涂。后来发现InputStream是一个抽象类,FileInputStream是它的一...

Java读取文件内容(Java读取文件内容为字符串)
JAVA中读取文件内容的方法有很多,比如按字节读取文件内容,按字符读取文件内容,按行读取文件内容,随机读取文件内容等方法,本文就以上方法的具体实现给出代码,需要的可以直接复制使用 publicclassReadFromFile{ \/** *以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 *\/ publicstaticvoidreadFileByByt...

java数据转换图片(java将图片转为字符串)
server数据库是以二进制数据存储的,在打开是必须首先转换为图片文件才可以,不能直接打开。另外转换生成的图片文件必须要包含文件名+扩展名,缺一不可。java如何将连续的字节数据转成图片数据?java是可以将图片字节转成图片的,但是你需要知道接受的数据对应一个图片有多长,可以在每个图片数据包前面加上...

相似回答