nodejs读取文档(非流式读取)
Nodejs中fs模块文件系统的使用*
写在前面,所有的语法,都是基于引入 fs 后实现的!!!(对于下面的代码,只需要添加var fs=require(“fs”);即可)
- 读取文件
(异步读取数据)
var fs=require("fs");
fs.readFile("content.txt",function(err,data){
if(err){
console.log(err);
return false;
}
console.log(data.toString());
});
(同步读取数据)
var data =fs.readFileSync("content.txt");
console.log(data.toString());
- 读取文件,判断是目录还是文件
fs.stat("content.txt",function(err,stat){
if(err){
console.log(err);
return false;
}
console.log("是否为文件"+stat.isFile());
console.log("是否为目录"+stat.isDirectory());
});
-
文件的写入 (追加 覆盖)
- 覆盖
fs.writeFile("../text2/new.txt","我在测试写入文件",function(err){ if(err){ console.log(err); return false; } });
- 追加
var txt="我真的是zl呀"; fs.appendFile("../text2/new.txt",txt,function(err){ if(err){ console.log(err); } })
4.创建目录(如果目录已存在则不创建,经常用于图片的上传与下载)
fs.mkdir("./upload",function(err){
if(err){
console.log(err);
return err;
}
console.log("创建目录成功")
})
5.读取目录
fs.readdir("upload",function(err,files){
if(err){
console.log(err);
return false;
};
console.log(files);
});
6.一个小demo(读取目录,判断子是是文件还是目录)
var filename="upload"
fs.readdir(filename,function(err,files){
if(err){
console.log(err);
return false;
};
console.log(files);
// 用var定义file时,会导致拿不到索引值,可以用let代替,完美解决
// 原因是fs的方法异步执行
for(let file in files){
fs.stat(filename+"/"+files[file],function(err,stat){
if(err){
console.log(err);
return false;
};
console.log(files[file],stat.isDirectory()?"是目录":"是文件");
})
}
})