2015-12-15 48 views
1

我正在編寫一個shell腳本,使用jjs腳本在Java 8下運行。但是,一個關鍵要求是我需要能夠寫入多個文件。 (所以我不能只是打印()標準輸出和重定向。)Javascript Nashorn腳本編寫模式:如何寫入文件

有小寫閱讀文件,但我沒有看到任何writeFully,這對我來說似乎很奇怪。

我想也許我可以只$ EXEC echo命令,但我不能得到那個工作:

jjs> x='some string' 
some string 
jjs> $EXEC("echo '"+x+"' >test.out"); 
some string >test.out 

所以,我的下一個想法是,我必須加載並調用相應的Java類,但這似乎是一個簡單的功能過於複雜。我錯過了什麼?

回答

2

我能弄清楚的最好方法是通過Java FileWriter類來完成。例如,我有聯繫的數組,我需要寫入一個文件:

var FileWriter=Java.type("java.io.FileWriter"); 
var olinkfile = caldir+"/"+year+"_links.html"; 
var fw = new FileWriter(olinkfile); 
fw.write(links.join("\n")); 
fw.write("\n"); 
fw.close(); // forgetting to close it results in a truncated file 

雖然本來不錯的JJS提供的功能,直接從JavaScript做到這一點,而不必手動實例化的FileWriter類,這真的不是太多的代碼。一旦你完成了它似乎幾乎是顯而易見的。