Zi 字媒體
2017-07-25T20:27:27+00:00
此篇文章瀏覽量:
1,288
檔案系統模組(fs),都提供了「非同步」和「同步」兩個版本的操作方法,此文章介紹 截取檔案內容,並取代原檔案內容 的操作方式,僅示範同步的方式。
同步方法:fs.ftruncateSync();非同步方法:fs.ftruncate()。
以下僅示範「同步」的方法。
「同步」截取檔案內容,並取代原檔案內容:fs.ftruncateSync()
假設有一個檔案「txt/ftruncateSync.txt」,其檔案內容為以下:
abcdefghijklmnog
另有一個程式如下:
var fs = require('fs');
var exec = require('child_process').exec;
var child_pre = exec('cat txt/ftruncateSync.txt', function(error, stdout, stderr){
console.info('cat txt/ftruncateSync.txt stdout: ');
console.log(stdout);
console.log(stderr);
// 打開檔案(同步方法)
var fd = fs.openSync('txt/ftruncateSync.txt', 'a'); // 以 "附加" 的方式打開
fs.ftruncateSync(fd, 10); // 檔案內容截取,僅截取 10 個字元,其餘捨棄
console.info('File descriptor: ' + fd);
console.log('fs.ftruncateSync() Done.');
fs.closeSync(fd);
var child_suf = exec('cat txt/ftruncateSync.txt', function(error, stdout, stderr){
console.info('cat txt/ftruncateSync.txt stdout: ');
console.log(stdout);
console.log(stderr);
});
});
執行以上程式後,會發現該檔案的內容,僅剩下(10個字元):
abcdefghij
上述程式碼需要使用到 fs.openSync(),因為 fs.ftruncateSync() 需要傳入 file descriptor ,稍嫌麻煩,以下介紹另一個方式,是可以直接傳入檔案路徑即可,不用再經過 fs.openSync() 這樣的步驟。
同樣有「同步( fs.truncateSync() )」與「非同步( fs.truncate() )」兩種方法,這裡僅介紹「同步」方法:
使用 fs.truncate() 修改檔案長度
var fs = require('fs');
var exec = require('child_process').exec;
var child_pre = exec('cat txt/truncateSync.txt', function(error, stdout, stderr){
console.info('cat txt/truncateSync.txt stdout: ');
console.log(stdout);
console.log(stderr);
fs.truncateSync('txt/truncateSync.txt', 10); // 檔案內容截取,僅截取 10 個字元,其餘捨棄
console.log('fs.truncateSync() Done.');
var child_suf = exec('cat txt/truncateSync.txt', function(error, stdout, stderr){
console.info('cat txt/truncateSync.txt stdout: ');
console.log(stdout);
console.log(stderr);
});
});
若覺得文章有幫助,請多分享,讓其他同好也能吸收網站技能知識。
Tweet
寫了
5860316篇文章,獲得
23313次喜歡