在不知道包含某个字段的图片有多少张的情况下,我用File file = new File("D:\\track\\");// 图片存放路径
File list[] = file.listFiles();
int count = 0;
for (int i = 0; i < list.length; i++) {
String str = list[i].toString();
if (str.contains("Snap"))
count++;
}
return count;实现,然后再jsp界面循环显示。但是如果图片很多的话 要点这个链接显示图片不是要等很久
而且有没有可能会出现内存溢出的情况,有没有更好的办法。。

解决方案 »

  1.   

    把循环改一下          int count = 0;
                    for(File listi: list){
                         String str = listi.toString();
                         if(str.contains("Snap")){
                              count ++;
                           }
                     }
             return count;我目前只能这样来,其他的不清楚,首先是你不知道它的数目,要是在数据库的话,那么就很好做了
      

  2.   

    要循环显示你统计count干啥?
    把你的图片文件放到一个list里(名字符合的),循环这个list显示就可以了
    还要明确一点,你是怎么显示图片,用<img>还是说直接在页面画出来?
      

  3.   

    我界面是一个链接 点了之后执行这段代码 ,如果以后图片多了那循环不是要很久,那界面上是不是要等上一段时间才能显示 界面上用的是<img>
      

  4.   


    <% for(int i=1;i<count;i++){ %>
    <li>
    <a href="images/track/Track-Snap-<%=i%>.png">
    <img src="images/track/Track-Snap-<%=i %>.png" /> </a>
    </li>
    <%} %>
      

  5.   

    你的文件名能确保 i 一定符合?(当然如果你保存文件的时候保证 i 一定是按顺序的应该可以)
    我的意思是你把文件名直接保存到list里,遍历list就可以了
    <% for(String s : list){ %>
    <li>
    <a href="images/track/<%=s %>">
    <img src="images/track/<%=s %>" /> </a>
    </li>
    <%} %>还有你所说的文件多了查找变慢,这个如果数据量大肯定性能上有影响(查询数据库也一样),所以,你可以做个像缓存一样的,把文件夹下的文件保存都某一个list中,查询时过滤这个list(相当于缓存检索)就可以了