InputStream is = new FileInputStream(filename)//通过文件名称读取或InputStream is =new ByteArrayInputStream(byte[] a)//通过文件的字节数组读取。
BufferedImage buff = ImageIO.read(is)
buff.getWidth() //得到图片的宽度
buff.getHeight()�0�2 //得到图片的高度
is.close()//关闭Stream
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。
简单方案:可以通过文件夹内文件的后缀名字判断。
复杂的要通锅都区每个文件内容,判断文件是否为图片。不同格式的图片文件,二进制文件内容结构是不同的,但是这样就比较麻烦,而且文件读写,效率不高。
import java.io.File
import java.io.IOException
import java.util.HashSet
import java.util.Set
public class HasImage {
public static void main(String[] args) {
try {
boolean has = hasImage("E:\\BaiduZhidao")
System.out.println("文件夹下是否有图片:"+has)
} catch (IOException e) {
e.printStackTrace()
}
}
static boolean hasImage(String path) throws IOException {
// 图片文件后缀
Set<String> sets = new HashSet<>()
sets.add(".jpg")
sets.add(".png")
sets.add(".gif")
sets.add(".bmp")
File file = new File(path)
// System.out.println(file.isDirectory())
if (file.isFile()) {
String fileName = file.getName()
if (fileName.lastIndexOf(".") > 0) {
String sufix = fileName.substring(fileName.lastIndexOf("."))
if (sets.contains(sufix.toLowerCase())) {
return true
}
}
}
if (file.isDirectory()) {
// System.out.println(file.getCanonicalPath())
File[] files = file.listFiles()
for (File file2 : files) {
boolean has = hasImage(file2.getAbsolutePath())
if (has) {
return true
}
}
}
return false
}
}