我对将字符串写入标准输出的可移植方式感兴趣,没有在最终添加隐含换行符,理想情况下强制编码为UTF-8,可与如何将字符串写入Javascript的标准输出
- jrunscript(来自任何JDK)
- 犀牛
- 的node.js
我当前的代码尝试检测它正在运行,则使用特定于平台的写入方法:
if (typeof process !== "undefined") { // assume node.js
var log = function(string) {process.stdout.write(string);};
}
else if (typeof println == "undefined") { // assume rhino
var log = function(string) {java.lang.System.out.write(java.lang.String(string).getBytes("utf-8"));};
}
else { // assume jrunscript
var log = function(string) {java.lang.System.out.print(string);};
}
log("X");
log("Y");
应该导致:
XY
可以这样做的更好?
对于jrunscript,我一直使用函数print
,但是它代表JDK-8021773在JDK-8中改变了它的行为。
我想你会*需要*平台特定的代码 – Bergi
我在我的项目中有类似的代码。请注意,你也需要在Nashorn上进行测试。 (Java 8捆绑了Nashorn,而不是Rhino。) –
@SethTisue,谢谢你的提示。事实上,将JDK升级到8版让我再次考虑这一点。此外,犀牛及其(之前的8)JDK风味已经需要在这方面加以区分。 – Gunther