Java 脚本输出

2018-03-18 13:04 更新

Java脚本教程 - Java脚本输出


Nashorn提供了三种函数来输出文本到标准输出:

  • print() 函数
  • printf() 函数
  • echo() 函数

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()函数使用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();

  }
}

上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号