我试图从一个目录中读取多个文件并为每个文件创建一个单独的线程。在迭代循环时,匿名内部类不能使用非最终变量。
我的问题是如何在循环中创建多个线程。(我需要为每个文件手动创建线程,不能使用执行器服务或其他东西)
class de
{
void commit(File x){
int sum =0;
try{
FileInputStream fin = new FileInputStream(x);
byte[]b= new byte[5000];
fin.read(b);
for (byte digit:b){
sum=digit+sum;
}
System.out.println(sum);
}
catch(Exception e){}
}
public static void main (String args[]){
File f = new File("C:\\Users\\Sanjana\\workspace\\IO\\Numbers");
File []store = f.listFiles( new FilenameFilter(){
public boolean accept(File f, String name){
return name.endsWith("txt");
}
});
for (File x: store){
Thread t = new Thread(){
public void run (){
//new de().commit(x); /**/Error here non final variable x**
}
};
}
}
}