Nodejs中fs模块文件系统的使用
读取文件:
var fs=require("fs");//加载文件系统模块
node.js 文件系统(fs 模块)模块中的方法均有异步和同步的版本,例如读取文件内容的函数有异步的fs.readFile()
和同步的fs.readFileSync()
异步的方法函数最后一个参数为回到函数 回调函数的第一个参数包含了错误信息(error)建议使用异步 比起同步 异步方法性能更高 速度更快 而且没有阻塞
异步读取:(文件读取写到服务端上)
let url="";
fs.readFile(url,function(err,data){//data返回值
if(err){
console.log(err);
return false;
}
console.log(data,toString());
//data 返回的数据格式是buffer格式 buffer转化字符串 toString()
});
同步读取:
let data=fs.readFileSync(url).toString();
console.log(data);
获取文件信息 判断是否是目录还是文件:
读取文件信息
//异步方法
fs.stat("content.txt",function(err,stat){ //参数1路径 2回调函数
if(err){
console.log(err);
return false;
}
console.log("是否是文件"+stat.isFile());//isFile()判断是否为文件 返回值true/false
console.log("是否是目录"+stat.isDirectory());//isDirectory() 判断是否是目录 返回值true/false
});
读取文件目录:
读取目录
fs.readdir("upload",function(err,files){ //参数1路径 2回调函数
if(err){
console.log(err);
return false;
}
//打印出当前目录里面的所有目录
console.log(files);
});
打开、关闭文件 open close
fs.open("./comment/router","r+",(err,fd)=>{//r+可读可写 r可读
if(err){
throw err;
}
console.log("文件夹已打开");
console.log("这里在操作");
//关闭文件
fs.close(fd,(err)=>{
if(err){
console.log("关闭失败");
return;
}
console.log("关闭成功");
});
});
文件的写入 覆盖和追加
//异步写入文件 这种文件的写入会覆盖
fs.writerFile("content.txt","测试写入文件",function(err){
if(err){
console.log(err);
}
});
//追加文件的写入
var txt="追加文件的写入";
fs.appendFile("content",txt,function(err){
if(err){
console.log(err);
}
});
创建 、移除目录:
创建目录 如果目录已经存在不再创建 一般用于图片的上传与下载上
fs.mkdir("./upload",function(err){
if(err){
console.log(err);
//移除目录
fs.rmdir("./comment/user",()=>{
if(error){
console.log("删除目录失败");
return;
}
console.log("删除成功");
})
return;
}
console.log("创建 upload目录成功");
});
node里的文件流
Node.js Stream(流)
Stream 是一个抽象的接口, Node中有很多对象实现了这个接口,例如 对http服务器发送请求的request对象就是一个Stream
从流中读取数据
//从流中读取数据
var fs=require("fs");
//设置读取的数据
var data="";
//创建流
var readStream=fs.createReadStream("content.txt");
//设置编码格式
readStream.setEncoding("UTF-8");
//处理流的事件
//当有事件可读时触发
readStream.on("data",function(res){
data+=res;
});
//没有数据可读时触发
readStream.on("end",function(){
console.log(data);
});
//在读取时发生错误时触发
readStream.on("error",function(err){
console.log(err);
});
console.log("读取完成");