node中fs的用法总结
node中fs的用法总结fs模块为nodejs的核心模块之一,主要处理文件的读写、复制、s删除、重命名等操作。当需要使用该模块时,需要先导入该文件var fs = require('fs');nodejs文件系统中的方法均有异步和同步两种版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync().NodeJS 中,标识位代表着对文件的操作方式,如可读、
·
node中fs的用法总结
fs模块为nodejs的核心模块之一,主要处理文件的读写、复制、s删除、重命名等操作。当需要使用该模块时,需要先导入该文件
var fs = require('fs');
nodejs文件系统中的方法均有异步和同步两种版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync().
NodeJS 中,标识位代表着对文件的操作方式,如可读、可写、即可读又可写等等,在下面用一张表来表示文件操作的标识位和其对应的含义。
- r:读取
- w:写入
- s:同步
- +:增加相反操作
- x:排他方式
r+ 和 w+ 的区别,当文件不存在时,r+ 不会创建文件,而会抛出异常,但 w+ 会创建文件;如果文件存在,r+ 不会自动清空文件,但 w+ 会自动把已有文件的内容清空。
主要用法:(路径、options、回调函数)。其中options可写可不写。主要指:
- encoding编码(默认utf8)
- mode文件读写权限 (默认438)
- flag 默认“w”
1.fs.stat 检测是文件还是目录
const fs = require('fs');
fs.stat('./module',(err,data)=>{
if (err) {
console.log(err);
return;
}
console.log(`是文件:${data.isFile()}`);
console.log(`是目录:${data.isDirection()}`);
2.fs.mkdir 创建目录 用法同上
const fs = require('fs');
fs.mkdir('./test',(err)=>{
if (err) {
console.log("创建失败");
return;
}
console.log("创建成功");
})
3.fs.writeFile 创建写入文件 用法:(路径及文件名称、写入内容、回调函数)
const fs = require('fs');
fs.writeFile('./write.js','你好',(err)=>{
if (err) {
console.log(err);
return
}
console.log("创建写入成功")
})
fs.writeFile会覆盖原内容.
4.fs.appendFile 写入文件 用法同上
const fs = require('fs');
fs.appendFile('./write.js','\n插入的文字',(err)=>{ // \n为换行符
if (err) {
console.log("写入失败");
}
console.log("写入成功");
})
5.fs.readFile 读取文件
const fs = require('fs');
fs.readFile('./write.js',(err,data)=>{
if (err) {
console.log("读取错误")
return;
}
console.log(data);//输出十六进制数据
console.log(data.toString());//将十六进制转化为字符串
})
6.fs.readdir 读取目录
const fs = require('fs');
fs.readdir('./nodespace',(err,data)=>{
if (err) {
console.log("读取失败");
}
console.log(data);
})
7.fs.rename 重命名 :1表示重命名,2表示移动文件 (用法:原文件路径及名称,新命名文件路径及名称)
重命名功能
const fs = require('fs');
fs.rename('./write.js','./write1.js',(err)=>{
if (err) {
console.log("重命名失败");
}
console.log("重命名成功");
})
移动文件功能只需在路径中修改即可
8.fs.rmdir 删除目录 用法同上
9.fs.uplink 删除文件 用法同上
10.fs.createReadStream以流的方式读取文件
const fs = require('fs')
let readStream = fs.createReadStream('./data/input.txt')
var count = 0
var str = ''
readStream.on('data',(data)=>{
str += data
count++
})
readStream.on('end',()=>{
console.log(str)
console.log(count)
})
10.fs.createWariteStream以流的方式读取文件
const fs = require('fs')
var strCont = ''
for(var i=0;i<100;i++){
strCont+='我们都一样,你知道我的梦,你知道我的痛,你知道我们感受都相同\n'
}
let writeStream = fs.createWriteStream('./data/write.txt')
writeStream.write(strCont) //执行写入内容
writeStream.end() //标记文件末尾,才能监听写入完成事件
//监听写入完成事件
writeStream.on('finish',()=>{
console.log('写入完成')
})
11.管道流(读取文件中的数据复制到另一个文件)
const fs = require('fs')
let readStream = fs.createReadStream('./data/write.txt')
let writeStream = fs.createWriteStream('./data/copy.txt')
readStream.pipe(writeStream)
更多推荐



所有评论(0)