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