private class Thread1 extends Thread {
public Thread1(File file) {
this.file = file;
}
File file;
public void run() {
readFromFiles(this.file);
}
public void readFromFiles(File file) {
try {
File folder = new File("/folderpath");
File[] listOfFiles = folder.listFiles();
for (File file1 : listOfFiles) {
FileInputStream input_document = new FileInputStream(file);
String fileName = file1.getName();
XSSFWorkbook my_xls_workbook =新しいXSSFWorkbook(input_document); }
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args1) {
File folder = new File("/folderpath");
File[] listOfFiles = folder.listFiles();
Test t=new Test();
for (File file1 : listOfFiles) {
Thread1 thread=new Thread1(file1);
thread.start();
}
}
}
理由がわかりました。 –
私はdownvoteしませんでしたが、質問は、複数のスレッドが同時にxlsファイルを処理するために間違っているようです。同じデータを変更します。答えは、ローカル変数、新しいオブジェクト、フィールドを使用しないでください。したがって、この特定の答えは無関係に見えるかもしれません。私はコードを見るのが好きです。仕事を続けてください。 –