如何高效随即取得一个图片

yjxqgd 2009-08-03 04:28:30
一个文件夹下有很多.jpg图片,我想快速随即取出一张后缀名为.small.jpg的图片的名字,关键是要高效,之前我是取出从第十个开始的第一张后缀名以.small.jpg的名称,发现如果文件夹下图片太多的话效率不高,所以想随即取出一张是不是效率会高点?如果随即取出该怎样去实现效率会高
...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuwen9 2009-08-03
  • 打赏
  • 举报
回复
其他的条件完全不管的话 数据库存储图片 可以试试
yjxqgd 2009-08-03
  • 打赏
  • 举报
回复
还有没有更好的方法,我就是想在有一个很多图片的文件夹下随即找到一幅后缀名为.small.jpg的图片,只要效率高就可以
快乐的2 2009-08-03
  • 打赏
  • 举报
回复
File类做list时候用个过滤器把需要的文件(.small.jpg结尾的文件),然后随机一个范围在返回的文件数组大小的数传到数组里可以不?
chumignze 2009-08-03
  • 打赏
  • 举报
回复
如果文件夹下图片很多的话,可以分成多个来循环读取,如有3万个图片,可以分成30个(可以是Vector),每个Vector里面有1000个,再来读取时候应该就快了。如果把3万个同时放到Vector里面的再判断,内存肯定会很慢的,建议用上面的试一下
yjxqgd 2009-08-03
  • 打赏
  • 举报
回复
高手来看看,大家有什么比较好的方法?
yjxqgd 2009-08-03
  • 打赏
  • 举报
回复
2楼的关键是我这里面的图片名称不确定,譬如说有的文件夹下的图片名称为 拉丁舞 恰恰 02 纽约步 20080710.avi_00-00-00.4.jpg而有的文件夹下的图片名称为交 流1.mpg_00-00-01.3.jpg就是说各个文件夹下的名称并不是很有规律的我以前的方法是这样
public String getPic(String path){
File file=new File(path);
File[] lf=file.listFiles();
String fileStr="";
for(int i=10;i<lf.length;i++){

if(lf[i].getName().endsWith(".small.jpg"))
{
fileStr=lf[i].getName().toString();
//System.out.println(fileStr);
break;
}
}
return fileStr;
}
后来我把lf.length改为20就是说从第十个开始到第二十个之间后缀名以.small.jpg的第一个文件,但是当一个文件夹下如果有3万张以上的图片,这种方法也是比较慢的,有没有效率更好的办法
zuijiejina 2009-08-03
  • 打赏
  • 举报
回复
为什么会不高效?是因为一直在找符合条件的图片名字而使得效率降低了吗?
如果真的是这样子的话,2楼的方案是可以的
gukuitian 2009-08-03
  • 打赏
  • 举报
回复
图片名:
1.small.jpg
2.small.jpg
3.small.jpg
.....
random一个数,再加上.small.jpg
jackson416 2009-08-03
  • 打赏
  • 举报
回复
lucene

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧