В настоящее время у меня есть куча файлов 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();
}
}
}
}
Это работает, однако в настоящее время я тестирую это с файлами XML ~ 370 000, и время работы составляет чуть более 45 минут. Это кажется чрезмерным, и я действительно хотел бы сократить время, необходимое для завершения этого.