В настоящее время у меня есть куча файлов XML (каждый размером 16 КБ), которые необходимо преобразовать в JSON, а затем записать в новые файлы. У меня есть рабочая реализация, но она очень медленная.
То, что я делаю, это захват каждого файла в каталоге, преобразование данных XML в строку, создание объекта JSON этой строки с помощью org.json, а затем использование FileWriter для записи его в файл
import org.json.JSONObject;
import org.json.XML;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import org.apache.commons.io.FilenameUtils;
public class TestConvert {
public static void main(String[] args) {
final File xmlFolder = new File("C:\\files\\xml_files");
final File jsonFolder = new File("C:\\files\\json_files");
for(File fileEntry: xmlFolder.listFiles()){
try {
String xml = new String(Files.readAllBytes(fileEntry.toPath()), StandardCharsets.UTF_8);
JSONObject obj = XML.toJSONObject(xml);
String completeDir = jsonFolder + "\\" + FilenameUtils.removeExtension(fileEntry.getName()) + ".json";
FileWriter file = new FileWriter(completeDir);
obj.write(file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Это работает, однако в настоящее время я тестирую это с ~ 370k XML-файлами, а время работы составляет более 45 минут. Это кажется чрезмерным, и мне бы очень хотелось сократить время, необходимое для этого.