NodeJs基础之字节操作、路径操作和⽂本操作
字节操作 buffer对象
构造函数
new Buffer(size) 参数为数值,表⽰分配空间的长度
new Buffer(string,[encoding]) 参数为字符串,表⽰存⼊Buffer的数据,编码可选
new Buffer(array) 参数为数组,表⽰存⼊Buffer的数据
静态⽅法
Buffer.isBuffer(obj) 判断是否为Buffer(静态⽅法直接通过类名调⽤)
实例⽅法
buf.write(content,offset,length,encoding);
content 表⽰写⼊Buffer的内容
offset 表⽰写⼊Buffer的起始位置
length 表⽰写⼊Buffer的字节数量
encoding 表⽰写⼊Buffer的编码设置(ascii/utf8/utf16le/ucs2/base64/binary/hex)
路径操作 path对象
引⼊模块 var path = require("path");
1. alize(path) 规范化路径
2. path.basename(path[, ext]) 获取⽂件名称,包括扩展名
3. path.dirname(path) 获取⽂件全路径,不包括扩展名
4. ame(path) 只获取⽂件扩展名
5. path.parse(path) 把字符串形式的⽂件路径转化为对象形式
6. path.format(pathObject) 把对象形式的⽂件路径转化为字符串形式
7. lative(from, to) 到两个路径的相对路径
8. solve([from ...], to) 把多个路径解析完成后形成最终路径
9. path.join([path1][, path2][, ...]) 连接路径
10. path.sep 路径分隔符 Window"\" 或 Linix"/"
'foo\\bar\\baz'.split(path.sep)
// returns ['foo', 'bar', 'baz']
11. path.delimiter 环境变量分隔符,window中是“;” , Linix 系统中是“:”符号
⽂件操作 File System 对象
引⼊File System模块 var fs = require('fs')
1.判断⽂件是否存在
callback(exists); exists==true 存在, exists==false 不存在,
2.查看⽂件的基本信息
fs.stat(path, callback);
callback(err, stats);
stats是信息对象,有isFile(),isDirectory()⽅法,和size属性
3.打开⽂件
fs.open(path, flags[, mode], callback); callback(err , fd);
path:路径
flags:读写标志位只读"r"、读写"r+"
mode:读/写/可执⾏ 4/2/1 通常只在Linix中使⽤
callback:回调函数(第⼆个参数是⼀个数字,表⽰⽂件的句柄);
4.读取⽂件
异步操作
fd ⽂件句柄
buffer ⽂件内容读取到什么地⽅
offset 从Buffer的什么位置开始读取
length 向Buffer中读取⼏个字节
position 表⽰从⽂件中的什么位置开始读取
callback 表⽰回调函数 callback(err, bytesRead, buffer)
bytesRead 读⼊的字节长度,相当于length
buffer 读⼊的内容
同步操作,返回值为字节长度
var ret = fs.readSync(fd,bf,0,bf.length,0);
5.写⼊⽂件
异步操作
fs.write(fd, buffer, offset, length[, position], callback)
fd ⽂件句柄,操作哪个⽂件
buffer //String> | //Buffer> 要写⼊的内容
offset 从Buffer的什么位置开始写⼊
length 写⼏个字节的内容
position 表⽰从⽂件中的什么位置开始写⼊
callback 表⽰回调函数(err, written, buffer)
err表⽰错误信息
written 即写⼊的内容的字节长度
buffer 写⼊的内容
同步操作
fs.writeSync(fd, buffer, offset, length[, position]); 返回值为写⼊的字节长度length 6.关闭⽂件
异步操作 fs.close(fd, callback); callback(err);
同步操作 fs.closeSync(fd); 没有返回值
7.读写⽂件的快捷操作
读取⽂件 fs.readFile(file[, options], callback); callback(err , data);
第⼀个参数要读的那个⽂件
如果第⼆个参数传递编码,那么读取到的数据就是⽂本;
如果不传递编码,那么读取到的数据是Buffer
读取的同步操作,返回值为读取到的内容
写⼊⽂件 fs.writeFile(file, data[, options], callback); callback(err);
写⼊⽂件的同步操作,没有返回值
fs.writeFileSync(file, data[, options])
8.⽂件夹操作
创建⽂件夹
fs.mkdir(path[, mode], callback); callback(err);
参数path 要创建的⽂件夹,及其路径
创建⽂件夹的同步操作,没有返回值
fs.mkdirSync(path[, mode])nodejs字符串转数组
读取⽂件夹
参数path是⽂件夹路径
options 编码 //String> 默认 'utf8'
callback(err , files); 第⼆个参数是⽂件的集合,数组类型,包含⽂件和⽂件夹读取⽂件夹的同步操作,返回值是所含⽂件的集合,数组类型,包含⽂件和⽂件夹fs.readdirSync(path[, options]);
移除⽂件夹,只能移除空⽂件夹 fs.rmdir(path, callback); callback(err);
移除⽂件夹的同步操作,没有返回值 fs.rmdirSync(path)
9.监听⽂件与取消监听操作
监听⽂件的变化
fs.watch(filename[, options][, listener]);
filename是要监听的⽂件名
listener //Function> 监听处理函数。参数(event,filename);
event是⽂件发⽣变化的事件,⼀般为rename和change
filename就是被监听的⽂件
fs.watchFile(filename[, options], listener);
options有两个属性
persistent //Boolean> 是否被监听
interval //Integer> 被监听的时间间隔,默认是5007毫秒
listener //Function>,参数(curr,prev);
curr表⽰⽂件变化之前的状态信息,prev表⽰⽂件变化之后的状态信息取消监听
fs.unwatchFile(filename[, listener]);
listener //Function>,这表⽰具体的函数名,可以没有,⽽不可以是匿名函数10.⽂件流的读写操作
readStream.pipe(writeStream); 管道思想,简易写法
* 流⽂件的读取 fs.createReadStream(path[, options])
* path 读取的⽂件路径
* options <String> | <Object> 如果是字符串,是设置⽂件的编码格式
* 返回值:返回的是读取的⽂件对象
* 流⽂件的写⼊ fs.createWriteStream(path[, options])
* path 要写⼊的⽂件路径
* options参数含义与读取的⼀致
* 返回值是写⼊的⽂件对象
注意:所有的⽂件写⼊操作,如果没有相应路径的⽂件,相当于创建新的⽂件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论