package ru.testing.client.common; import javafx.application.Platform; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.testing.client.MainApp; import ru.testing.client.controllers.MainController; import ru.testing.client.elements.Dialogs; import java.io.*; import java.nio.charset.StandardCharsets; /** * Tools for file operations */ public class FilesOperations { private static final Logger LOGGER = LoggerFactory.getLogger(FilesOperations.class); private static final String TEXT_FILE_NAME = "logs/output.txt"; private MainController mainController = MainApp.getMainController(); /** * Save text to file * * @param text String */ public void saveTextToFile(String text) { Dialogs dialogs = new Dialogs(); mainController.setProgressVisible(true); if (text == null || text.isEmpty()) { Platform.runLater(() -> dialogs.getWarningDialog("Nothing for save")); mainController.setProgressVisible(false); return; } Writer writer = null; try { writer = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(TEXT_FILE_NAME), StandardCharsets.UTF_8)); writer.write(text); } catch (IOException io) { dialogs.getExceptionDialog(io); LOGGER.error("Can't save file: {}", io.getMessage()); } finally { if (writer != null) { try { writer.close(); dialogs.getInfoDialog(String.format("Save successful in file %s", TEXT_FILE_NAME)); } catch (Exception e) { dialogs.getExceptionDialog(e); LOGGER.error("Can't close writer: {}", e.getMessage()); } } mainController.setProgressVisible(false); } } }