1
我使用XPCOM在我的硬盤上讀取/寫入文件(因爲Java不再支持FF16,17,18 +我必須使用它)。我在我的FireFox擴展中使用它(我使用iMacros)。在這個文件click我發現這個例子。Javascript寫入文件沒有被覆蓋
var string = '\u5909\u63db\u30c6\u30b9\u30c8';
file.initWithPath('C:\\temp\\temp.txt');
file.create(file.NORMAL_FILE_TYPE, 0666);
var charset = 'EUC-JP';
var fileStream = Components
.classes['@mozilla.org/network/file-output-stream;1']
.createInstance(Components.interfaces.nsIFileOutputStream);
fileStream.init(file, 2, 0x200, false);
var converterStream = Components
.classes['@mozilla.org/intl/converter-output-stream;1']
.createInstance(Components.interfaces.nsIConverterOutputStream);
converterStream.init(fileStream, charset, string.length,
Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
converterStream.writeString(string);
converterStream.close();
fileStream.close();
因此,此代碼執行以下操作。如果文件不存在,它將創建它並將數據保存在其中。但是,如果文件確實存在,它將返回錯誤。 如果我評論那部分代碼(和文件存在),它會覆蓋舊數據並放入新數據。
我需要此代碼來創建文件,如果它存在只是繼續而沒有錯誤,並保存在新行中的數據而不覆蓋。
像這樣。
之前:
data11, data12, data13
data21, data22, data23
後:
data11, data12, data13
data21, data22, data23
data31, data32, data33
data41, data42, data43
好的工作。將很快報告它是如何工作的。好吧,它的工作和寫作,但不完全。當我嘗試創建已經存在的文件時,仍然出現錯誤,並且數據沒有在新行中移動,而是寫入現有文本的同一行中。這可以通過converterStream.writeString(「\ n」)來解決。在寫正文之前。如何解決創建文件的錯誤? – macroscripts