0 0

求大虾们解释一下这段代码、小弟没有弄懂5

  /**
* 判断文件是否为图片文件(GIF,PNG,JPG)
*
* @param srcFileName
* @return
*/
public boolean isImage(File srcFileName) {
FileInputStream imgFile = null;
byte[] b = new byte[10];
int l = -1;
try {
imgFile = new FileInputStream(srcFileName);
                           //这里不知道其意思、l变量拿到的是10可不知道什么意思
l = imgFile.read(b);
imgFile.close();
} catch (Exception e) {
return false;
}
if (l == 10) {
byte b0 = b[0];
byte b1 = b[1];
byte b2 = b[2];
byte b3 = b[3];
byte b6 = b[6];
byte b7 = b[7];
byte b8 = b[8];
byte b9 = b[9];
                           //还有就是这里、为什么没有b4和b5、判断的时候为什么GIF就是B0\B1\B2其他格式而又不是呢
if (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F') {
return true;
} else if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G') {
return true;
} else if (b6 == (byte) 'J' && b7 == (byte) 'F' && b8 == (byte) 'I'&& b9 == (byte) 'F') {
return true;
} else {
return false;
}
} else {
return false;
}
}
2012年1月18日 15:50

2个答案 按时间排序 按投票排序

0 0

这是根据字节流读取文件头来对文件类型进行还原的代码,这里只是根据文件头判断了一下文件是不是几种图片类型。
一种流究竟是什么类型的数据,它是根据头部来决定的,关于各种文件的头部应该是个什么样子,百度一下答案应该一大把。
如果流没有一个协议来约束的话,那一个文件作为一个字节流读出来或者存放到数据库之后,以后取出来的时候就只有天知道那是什么类型的文件了。

不知道你的疑惑是不是在这里呢?

2012年1月21日 17:04
0 0

l = imgFile.read(b);
返回的是读取的字节数,因为数组b大小事10,所以l=10

2012年1月18日 16:34

相关推荐

    跟我一起写大虾网(第2天)

    【压缩包子文件的文件名称列表】: "mydaxia02" 这个文件名可能是教程的代码示例或者相关资料的打包文件,"mydaxia"很可能对应的就是“大虾网”,而"02"可能代表这是系列教程的第二部分。读者可以通过解压这个文件...

    大虾电子网30章C51入门教程.zip

    4. **函数**:C51中的函数定义、调用、参数传递和返回值处理会得到详细阐述,这对于代码模块化和重用至关重要。 5. **指针**:由于8051的内存模型,C51中的指针使用具有特殊性,教程会专门讨论如何使用指针操作内存...

    大虾串口助手sscom5.13.1

    一款非常好用的串口调试工具

    哪位大虾帮忙破解一下....万分感激

    那位好心的大虾帮帮忙....破解一下,小弟感激不尽,谢谢!谢谢!谢谢!

    大虾电子网30章C51入门教程

    这份《大虾电子网30章C51入门教程》涵盖了以上各个关键知识点,并且提供了丰富的实例和练习,适合自学或课堂教学。通过系统学习,读者不仅可以掌握C51编程,还能建立起单片机硬件与软件之间的桥梁,为进一步的嵌入式...

    大虾板移植的FC游戏

    大虾板可能是一种基于STM32微控制器的自制游戏开发板,它允许爱好者们在现代硬件上运行复古游戏。 FC游戏是80年代风靡全球的游戏机平台,拥有众多经典游戏如《超级马里奥》、《坦克大战》等。移植这些游戏意味着将...

    大虾网超好的串口调试工具-sscom5.04a.rar-大虾网超好的串口工具-sscom5.04a.rar

    SSCOM5.04a是该软件的一个版本,它提供了一系列强大的功能,帮助工程师们进行串口通信的测试、调试和数据传输。下面将详细介绍SSCOM5.04a的关键特性及其在实际应用中的价值。 首先,SSCOM5.04a支持多种串行接口标准...

    [原创]串行数据接收器代码,经过综合和简单的仿真

    根据一网友的文档编写了一个简单的串行数据接收...2:关键路径延迟较大,但是我对如何修改代码来减少关键路径的延迟不熟悉,希望大虾们能指导一下。 3:测试模块写得很简陋,很可能有些问题反映不出来 希望 , 压缩文件

    大虾电子网30章C51入门教程(C程序讲解)

    本教程“大虾电子网30章C51入门教程”是一个全面的学习资源,适合初学者和有一定基础的程序员,通过深入浅出的方式讲解C51的语法和应用。 在C51编程中,理解基本的C语言概念至关重要,包括变量、数据类型、运算符、...

    与大虾对话 领悟设计模式

    "与大虾对话 领悟设计模式"这个主题,暗示我们将通过一个交流或者讨论的形式来深入理解设计模式的核心思想和应用场景。在这个过程中,我们可以探讨面向对象设计中的23种经典设计模式,它们分为创建型、结构型和行为...

    求助各位大虾关于itae积分指标实现的问题-heatexdemo.m

    求助各位大虾关于itae积分指标实现的问题-heatexdemo.m 这个在matlab里面怎么实现阿 ! 比如用pid去控制一个最简单的一阶惯性环节! 用这个itae指标去优化pid的...这个怎么弄 具体步骤 向各位大虾求助了阿

    vba写的宏请大虾们指导

    vba代码读取数据组合正式方案到一张表内

    大虾们都来帮我整整Matlab的Sfunction问题急-theta.m

    大虾们都来帮我整整Matlab的Sfunction问题急-theta.m 在下是新手,遇到问题如下,请高手帮帮我

    跟我一起写大虾网(第3天)

    【标题】"跟我一起写大虾网(第3天)" 暗示了这是一个关于编程教程的系列,可能是一个在线课程或博客文章的第三部分,专注于构建一个名为“大虾网”的项目。在这个阶段,作者可能讲解了项目的进一步开发、功能实现或者...

    大虾电子网30章C51入门教程--奉献了

    大虾电子网30章C51入门教程--奉献了,需要下载的学习吧

    大虾们都来帮我整整Matlab的Sfunction问题急-QQ截图未命名.rar

    基于模板的S函数使用预定义的模板文件,通过修改参数和代码段来创建,适合初学者。而原生S函数则需要编写C或C++代码,更灵活但难度相对较高。 1. **编译问题**:当你尝试运行包含S函数的Simulink模型时,可能会遇到...

    sscom大虾串口调试助手

    "sscom大虾串口调试助手"是一款专门用于串口调试的软件工具,它以其简单易用和功能强大的特点,深受开发者们的喜爱。本文将详细介绍该工具的使用方法、功能特性以及在实际开发中的应用。 首先,"sscom大虾串口调试...

Global site tag (gtag.js) - Google Analytics