2013-04-24 40 views
2

我正在構建一個nodejs腳本。 腳本流程如下:原子讀寫文件。如何在某個位置設置EOF?

  1. 用r +標誌打開文件。
  2. 然後讀取打開的文件內容(與fs.read)作爲json。
  3. 運行用戶回調以允許用戶操縱json(文件仍然打開)
  4. 將新對象寫入文件。
  5. 關閉文件

我的問題是,我不知道如何判斷一個文件的新的大小而不將其關閉。

因此,舉例來說,如果第一次執行這個代碼:

ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) { 
    json.test = 'ABC'; 
    json.foo = 'bar'; 
}); 

,並在未來某個時間點:

ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) { 
    delete json.foo; 
}); 

文件的內容將如下:

{ 
    "test": "ABC" 
} "foo": "bar" 
} 

但我希望它是:

{ 
    "test": "ABC" 
} 

所以,我的問題是:如何在文件仍然打開時用nodejs設置新的文件大小?

回答

1

fs.ftruncate應該做你正在尋找的東西。 編輯: *請注意,您需要打開文件「w +」才能使用。

+0

這就是我一直在尋找:)大謝謝! – 2013-04-24 11:58:07

相關問題