Zapisywanie wyników działania skryptu do pliku
Wynik działania skryptu ze stringu możemy zapisać do pliku.
Klasa E11_WriteScriptResultToFile.java
package jsr223groovy; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.charset.Charset; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class E11_WriteScriptResultToFile { public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("Groovy"); File outputFile = new File("src/scripts/skryptout.txt"); System.out.println("Wynik działania skryptu został zapisany do: " + outputFile.getAbsolutePath()); FileWriter writer = null; try { writer = new FileWriter(outputFile, Charset.forName("windows-1250")); ScriptContext defaultCtx = engine.getContext(); defaultCtx.setWriter(writer); String script = "println('Jestem Groovy! Uczę się polskiego: ąćęłńóśźż')"; engine.eval(script); } catch (IOException | ScriptException e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
Plik skryptout.xtx
Jestem Groovy! Uczę się polskiego: ąćęłńóśźż
Po uruchomieniu klasy na konsoli zobaczymy:
Wynik działania skryptu został zapisany do: C:\Users\Jacek\IdeaProjects\jsr223groovy\src\scripts\skryptout.txt
Klasa module-info.java
module jsr223groovy { requires org.apache.groovy; requires java.scripting; requires java.sql; exports jsr223groovy; opens jsr223groovy; }