菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻

Java 脚本输出

原创
05/13 14:22 更新

Java脚本教程 - Java脚本输出

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

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

echo()函数和print()函数相同,它仅在脚本模式下工作。

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);
  }
}

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

图片.png

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);
  }
}

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

图片.png

输出脚本执行结果

以下代码显示如何将脚本执行的输出写入名为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();
  }
}

上面的代码生成以下结果。
图片.png

综合评分:9.9 评分 请对本文进行纠错,及学习过程中有困难疑惑可在此进行讨论