NodeJs版本:4.4.4

fs


文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本。

图片的复制与粘贴

创建一个可读流与一个写入流。通过管道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)

参数:

  • 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的形式返回。

设置为utf-8后,返回的就是字符串的形式。如下:
var child_process = require('child_process');...

写文件(fs.writeFile)

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

参数:

  • 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){})

注意:异步写文件,如果文件已经存在则替换。

打开文件(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)

定义: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+', 但是如果文件路径存在,则文件读取追加失败。