奥特曼打猪 2017-05-18 07:20 采纳率: 0%
浏览 1298

java在扫描文件的同时怎么开启多线程删除啊

求问Java在扫描文件的时候,需要保留最新的10条, 但是怎么同时开启一个线程来删除其余的文件啊

 package foo;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Demo {
    public static void main(String[] args) {


        try {
            String path = "C:/Users/Administrator/Desktop/video/QXHDA012";
            File file = new File(path);
            File[] tempList = file.listFiles();
            // 先对文件进行排序
            Arrays.sort(tempList,
                    new Demo.CompratorByLastModified());
            List<String> list = new ArrayList<String>();
            for (int i = 0; i < tempList.length; i++) {
                String fnameString = tempList[i] + "";
                String fileName = fnameString.substring(fnameString
                        .lastIndexOf("\\") + 1);
                // System.out.println("排序后"+fileName);
                //把最新的5个放入集合中
                if (i <= 4) {
                    list.add(fileName);
                }
                //留下最新的10个文件 其余全部删除
                if (i > 9) {
                    File file2 = new File(fnameString);
                    file2.delete();
                }
            }
            System.out.println(list);
        } catch (Exception e) {
        }
    }

    // 创建一个排序的方法
    static class CompratorByLastModified implements Comparator<File> {
        public int compare(File f1, File f2) {
            long diff = f1.lastModified() - f2.lastModified();
            if (diff > 0) {
                return -1;
            } else if (diff == 0) {
                return 0;
            } else {
                return 1;
            }
        }
    }

}

上面是这个demo 这样可以删除 但是我不知道怎么开启多线程来删除 求大神帮帮忙

  • 写回答

2条回答 默认 最新

  • oyljerry 2017-05-18 07:28
    关注

    把需要删除的文件放到一个链表,然后比如开4个线程,每个线程分链表中的文件的1/4,各个线程开始删除自己得到的文件

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题