Node模块-File System

本节主要讲述Node模块

File System

readFile

1
2
3
4
5
var fs = require('fs');

fs.readFile('foo.txt', { encoding: "utf-8"}, function(err, res) {
console.log(res);
})

异步读取文本文件中的内容

readFileSync

直接返回文本数据内容

1
2
3
4
var fs=require('fs');

var data=fs.readFileSync("foo.txt",{encoding:"utf-8"});
console.log(data)
  • 要指定encoding:"utf-8"
  • 使用toString()方法转换

WriteFile

1
2
3
4
5
6
7
8
var fs=require('fs');

fs.writeFile('foo.txt',"Hello Node",{encoding:"utf-8"},function(err){
if(err){
return
}
console.log("success");
})

fs.stat(path,callback)

stat方法用来获取文件的状态

可以在调用open()、read(),或者write方法之前调用fs.stat方法,用来判断文件是否存在

1
2
3
4
5
6
7
8
var fs=require('fs');

fs.stat("foo.txt",function(err,res){
if(err){
return
}
console.log(res);
})

如果文件存在,res就会返回文件的状态信息

如果不存在,则会出现

实战项目:获取目录下的所有文件名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var fs = require('fs');

function getAllFileFromPath(path) {

fs.readdir(path, function (err, res) {

for (var subPath of res) {
var statObj = fs.statSync(path + '/' + subPath);
if (statObj.isDirectory()) {
console.log("Dir:", subPath)
getAllFileFromPath(path + '/' + subPath)
} else {
console.log("File:", subPath);
}
}
})
}

getAllFileFromPath(__dirname);

fs.statSync:为了避免嵌套层数过多