Nashorn提供了三种函数来输出文本到标准输出:
echo()函数和print()函数相同,它仅在脚本模式下工作。
print()
函数是一个varargs函数。我们可以传递任意数量的参数。
print()
函数将其参数转换为字符串,并打印它们,并用空格分隔它们。
print()
函数在每个输出打印一个新行。
以下两个对print()函数的调用返回相同的值。
print("Hello", "World!"); // Prints Hello World!
print("Hello World!"); // Prints Hello World!
完整的源代码
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Main {
public static void main(String[] args) throws Exception{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "print("Hello", "World!");";
engine.eval(script);
script = "print("Hello World!");";
engine.eval(script);
}
}
上面的代码生成以下结果。
printf()函数使用printf-style来格式化打印。
它与使用Java方法 System.out.printf()
相同:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Main {
public static void main(String[] args) throws Exception{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String script = "printf("%d + %d = %d", 1, 2, 1 + 2);";
engine.eval(script);
}
}
上面的代码生成以下结果。
以下代码显示如何将脚本执行的输出写入名为jsoutput.txt的文件。
import java.io.File;
import java.io.FileWriter;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Main {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
**File** outputFile = new **File**("jsoutput.txt");
System.out.println("Script output will be written to "
+ outputFile.getAbsolutePath());
FileWriter writer = new FileWriter(outputFile);
ScriptContext defaultCtx = engine.getContext();
defaultCtx.setWriter(writer);
String script = "print("Hello custom output writer")";
engine.eval(script);
writer.close();
}
}
上面的代码生成以下结果。
© 著作权归作者所有