ディレクトリから複数のファイルを読み取り、ファイルごとに個別のスレッドを作成しようとしています。ループを繰り返している間、匿名の内部クラスは非最終変数を使用できません。
私の質問は、ループ内に複数のスレッドを作成する方法です。(ファイルごとにスレッドを手動で作成する必要があり、executor サービスなどを使用できません)
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**
}
};
}
}
}