NodeJs之fs的讀寫刪移監

NodeJs版本:4.4.4html

fs


文件系統模塊是一個封裝了標準的 POSIX 文件 I/O 操做的集合。Node.js 文件系統(fs 模塊)模塊中的方法均有異步和同步版本。app

圖片的複製與粘貼

建立一個可讀流與一個寫入流。經過管道pipe異步

var fileReadStream = fs.createReadStream(sourcePath);
var fileWriteStream = fs.createWriteStream(targetPath);
fileReadStream.pipe(fileWriteStream);
//監聽關閉事件得知執行完成
fileWriteStream.on('close', function() {
    console.log('移動成功!');         
})

讀文件(fs.readFile)

定義:fs.readFile(filename[, options], callback)函數

參數:ui

  • filename:{String} 文件名/文件路徑
  • options:{Object} 可選參數
    • encoding:{String | Null} 默認 = null 編碼方式
    • flag:{String} 默認 = 'r' 文件打開的行爲(可寫,可讀等)
  • callback:{Function}
var fs = require('fs');

//讀取文件
fs.readFile('../lianxi/child_process.js',{
    encoding:'utf-8',
    flag:'r'
}, function(err,data){
    if(err) throw err;
    console.log(data);
});

這裏讀取文件若是不設置編碼方式,讀取的文件就是以buffer的形式返回。
<Buffer 76 61 72 20 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 20 3d 20 72 65 71 75 69 72 65 28 27 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 27 29 3b 0d 0a 76 61 72 ... >編碼

設置爲utf-8後,返回的就是字符串的形式。以下:
var child_process = require('child_process');...3d

寫文件(fs.writeFile)

定義:fs.writeFile(filename, data[, options], callback)code

參數:htm

  • filename:{String}
  • data:{String | Buffer}
  • options:{Object}
    • encoding:{String | Null} 默認 = 'utf8'
    • mode:{Number} 默認 = 438 (aka 0666 in Octal)
    • flag:{String} 默認 = 'w'
  • callback {Function}
//寫入文件
fs.writeFile('../lianxi/child_process.js','[zqz]要寫入的數據字符串或者buffer',{
    encoding:'utf8',
    mode:438,
    flag:'w'
},function(err){

})

注意:異步寫文件,若是文件已經存在則替換。blog

打開文件(fs.open)

定義:fs.open(path, flags[, mode], callback)

參數:

  • path:文件/文件路徑
  • flags:文件打開的行爲
  • mode:設置文件模式(權限),文件建立默認權限爲 0666(可讀,可寫)。
  • callback:回調函數
//打開文件
fs.open('../lianxi/child_process.js','r+',0666,function(err,data){
    
})

給文件添加數據(fs.appendFile)

定義:fs.appendFile(filename, data[, options], callback)

參數:

  • filename:{String}
  • data:{String | Buffer}
  • options:{Object}
    • encoding {String | Null} 默認 = 'utf8'
    • mode {Number} 默認 = 438 (aka 0666 in Octal)
    • flag {String} 默認 = 'a'
  • callback {Function}
//給文件添加數據
fs.appendFile('../lianxi/child_process.js', '異步添加的字符串或buffer', {
    encoding:'utf8',
    mode:438,
    flag:'a'
}, function(err){

});

注意:異步的給文件添加數據,若是文件不存在,就會建立一個文件。

定義:fs.unlink(path, callback)

var fs = require('fs');

fs.unlink('./t/index.html',function (err) {
    if(err) throw err;
    console.log('成功')
})

建立文件(fs.open)

定義:fs.open(path, flags[, mode], callback)

也能夠使用fs.open建立文件。

fs.open("test.txt", "w",function (err) {

});

刪除文件夾(fs.rmdir)

定義:fs.rmdir(path, callback)

fs.rmdir('./t/a',function (err) {
    if(err) throw err;
    console.log('成功')
})

建立文件夾(fs.mkdir)

定義:fs.mkdir(path[, mode], callback)

參數:mode 默認是 to 0777.

fs.mkdir('./t/a',0777,function (err) {
    if(err) throw err;
    console.log('成功')
})

文件監聽(fs.watch fs.watchFile)

定義:fs.watch(filename[, options][, listener])
定義:fs.watchFile(filename[, options], listener)

fs.watch('test.js', function (event, filename) {
  
});

fs.watchFile('test.js', function(curr, prev){
 
});

flags


Flag 描述
r 以讀取模式打開文件。若是文件不存在拋出異常。
r+ 以讀寫模式打開文件。若是文件不存在拋出異常。
rs 以同步的方式讀取文件。
rs+ 以同步的方式讀取和寫入文件。
w 以寫入模式打開文件,若是文件不存在則建立。
wx 相似 'w',可是若是文件路徑存在,則文件寫入失敗。
w+ 以讀寫模式打開文件,若是文件不存在則建立。
wx+ 相似 'w+', 可是若是文件路徑存在,則文件讀寫失敗。
a 以追加模式打開文件,若是文件不存在則建立。
ax 相似 'a', 可是若是文件路徑存在,則文件追加失敗。
a+ 以讀取追加模式打開文件,若是文件不存在則建立。
ax+ 相似 'a+', 可是若是文件路徑存在,則文件讀取追加失敗。
相關文章
相關標籤/搜索