我需要ArrayList
从某个位置序列化为所有绝对文件路径。我想用FixedThreadPool
from做到这一点ExecutorService
。
示例- location: c:/folder1
; folder1 里面有更多的文件夹,都带有文件。我希望每次找到一个文件夹时都搜索他们的文件以添加到 ArrayList。
public class FilePoolThreads extends Thread {
File fich;
private ArrayList al1;
public FilePoolThreads(File fi, ArrayList<String> al) {
this.fich = fi;
this.al1 = al;
}
public void run() {
FileColector fc = new FileColector();
File[] listaFicheiros = fich.listFiles();
for (int i = 0; i < listaFicheiros.length; i++) {
if (listaFicheiros[i].isFile()) {
al1.add(listaFicheiros[i].getAbsolutePath());
}
}
}
}
我开始收集文件的类:
public class FileColector {
private ArrayList<String> list1 = new ArrayList<>();
public static ArrayList<String> search(File fich,ArrayList<String> list1) {
int n1 = 1;
ExecutorService executor = Executors.newFixedThreadPool(n1);
do {
// FilePoolThreads[] threads=new FilePoolThreads[10];
FilePoolThreads mt = new FilePoolThreads(fich, list1);
executor.execute(mt);
} while (fich.isDirectory());
executor.shutdown();
return list1;
}
我的代码运行不正常,我认为我有一些逻辑错误,我需要有人帮我修复它,我该如何返回ArrayList
?我必须使用getInputStream
之前和然后getOutputStream
?