У меня есть метод, который начинает создавать JSON файлов в каждой из папок моего дерева.
public static void fill(List<String> subFoldersPaths) {
for (int i = 0; i < subFoldersPaths.size(); i++) {
String fullFileName = subFoldersPaths.get(i) + FILE_NAME;
String formatFullFileName = String.format(fullFileName, i)+"%d";
Runnable runnable = new JsonCreator(formatFullFileName);
new Thread(runnable).start();
}
}
List<String> subFoldersPaths
- это список, содержащий пути к каждой папке по порядку.
Вот моя структура папок:
Я хочу, чтобы каждая папка заполнялась файлами в отдельном потоке каждые 0,08 секунды. Но мой класс не будет заполнять каждую папку.
Вот класс, реализующий Runnable, который должен выполнять заполнение:
import com.epam.lab.model.Author;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.andreinc.mockneat.MockNeat;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.FileWriter;
import java.io.IOException;
public class JsonCreator implements Runnable {
private static Logger logger = LogManager.getLogger();
private static String fileName;
private static final int FILES_COUNT = 100;
public JsonCreator(String s){
this.fileName = s;
}
@Override
public void run() {
for (int i = 0; i < FILES_COUNT; i++) {
try {
String formatFullFileName = String.format(fileName, i)+".json";
FileWriter fileWriter = new FileWriter(formatFullFileName);
fileWriter.write(createJsonString());
fileWriter.close();
Thread.sleep(80);
} catch (IOException | InterruptedException e) {
logger.error("File was not created", e);
}
}
}
private static String createJsonString() {
MockNeat mockNeat = MockNeat.threadLocal();
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
String json = mockNeat
.reflect(Author.class)
.field("authorName", mockNeat.names().first())
.field("authorSurname", mockNeat.names().last())
.map(gson::toJson)
.val();
return json;
}
}
Но этот класс заполняет не каждую папку с файлами. (возможно, есть проблема с именами файлов) Не могу понять.
и Я хочу, чтобы каждая папка ниже «foo» была заполнена отдельной веткой файлов JSON в папке количество FILES_COUNT = 10
некоторые примеры выполнения алгоритма:
Структура папок создается с участием случайных людей, поэтому она практически всегда разная. но это не влияет на то, что файлы создаются не во всех папках