文件系统(fs)
首先引入内置模块:var fs = require(“fs”);
readFile
1.异步读取一个文件的全部内容:fs.readFile(“./filename”,[options],function(err,data){statements})
// fs.readFile(‘./88.txt‘,‘utf-8‘,function(err,data){
// if(!err){
// console.log("读取成功");
// console.log(data);
// }else{
// console.log("读取出错");
// // console.log(err);
// }
// })
注释:
Filename为文件路径
回调函数function传递了两个参数 (err, data), data 就是文件的内容。
[options]如果未指定编码方式,原生buffer就会被返回。
2.同步读取一个文件的全部内容:
fs.readFileSync(“./filename”,[options])
// var data = fs.readFileSync(‘./88.txt‘,‘utf-8‘);
// console.log("同步读取: " + data.toString());
//也可以不填options而用toString()方法
// console.log("程序执行完毕。");
注释:
fs.readFile的同步版本。 返回文件名为 filename 的文件内容。
如果未指定编码方式[options],原生buffer(二进制)就会被返回。
writeFile
1.异步写入一个文件,如果文件原先存在,会被替换。(如果没有该文件则会新创建一个同名称文件)
fs.writeFile(“filename”,”data”,[options],function(err,data){})
var fs = require("fs");
console.log("准备开始写入");
var w=‘我是通过writeFile写入的内容‘;
fs.writeFile(‘./test.txt‘,w,{flag:‘a‘},function(err,data){
if(!err){
console.log("写入成功!");
console.log("-----分割线----");
fs.readFile(‘./test.txt‘,‘utf8‘,function(err,data){
console.log("读取内容为:");
console.log(data);
})
}else{
console.log("写入错误:");
console.log(err);
}
})
注释:
异步的将数据写入一个文件, 如果文件原先存在,会被替换。 data 可以是一个string,也可以是一个原生buffer。
[options]中 {flag:‘a‘} 不会覆盖住原先的内容而是接着后面写(追加的方式)
2.同步写入内容:
fs.writeFileSync(‘filename’,’data’,[options])
注释:
writeFile的同步版本;
appendFile
1.异步的将数据添加到一个文件的尾部,如果文件不存在,会创建一个新的文件。 data 可以是一个string,也可以是原生buffer。
fs.appendFile(‘Filename’,data,[options],function(err,data){})
注释:
和writeFile()方法同理;
2.异步的将数据添加到一个文件的尾部
fs.appendFileSync(filename, data, [options]);
fs.appendFile的同步版本。
Exists
1.检查指定路径的文件或者目录是否存在。接着通过 callback 传入的参数指明存在 (true) 或者不存在 (false)。
Fs.exists(‘path’,function(msg){console.log(msg)});
fs.exists(‘./test.txt‘,function(msg){
console.log(msg);
})
//true 存在 //false 不存在
2.同步检查指定路径的文件或者目录是否存在。
Fs.existsSync(‘path’);
var exist = fs.existsSync(‘./test.txt‘);
console.log(exist);
//true 存在 //false 不存在
unlink
1.异步删除一个文件完成时的回调函数(callback)只接受一个参数(msg):
fs.unlink(‘path’,function(msg){console.log(msg)})
删除成功 即为null!console.log(msg) //null
删除错误(文件不存在)
{ Error: ENOENT: no such file or directory, unlink ‘path‘
errno: -4058,
code: ‘ENOENT‘,
syscall: ‘unlink‘,
path: ‘C:\\Users\\Administrator\\Desktop\\11\\test.txt‘ }
2.同步版的unlink
Var unlink=fs.unlinkSync(path);
Console.log(unlink);
mkdir
1.异步创建一个空目录
fs.mkdir(‘path’,[mode],function(err){if(!err){console.log(‘创建成功’)}});
fs.mkdir(‘./abc/test‘,function(err){
if(!err){
console.log("创建成功");
}else{
console.log(err);
}
})
2.同步创建一个空文件夹
fs.mkdirSync(‘path’,[mode]);
readdir
1.异步读取一个文件夹下的所有目录:
fs.readdir(‘path’,function(err,files))
fs.readdir(‘./abc‘,function(err,files){
if(!err){
console.log("读取成功:");
files.forEach(function(file){
console.log(file);
})
}else{
console.log(err);
}
})
注释:files是一个数组 需要forEach(function(file))支持
2.同步版readdir
Fs.readdirSync(‘path’);
var read = fs.readdirSync(‘./abc‘);
console.log(read);
注释:返回的是一个数组;
rmdir
1.异步删除一个文件夹(目录),注意只能删除一个空的文件夹
fs.rmdir(‘path’,function(err){if(err){return console.log(err);}})
fs.rmdir(‘./abc/test‘,function(err){
if(!err){
console.log("执行删除...");
console.log("删除成功!");
fs.readdir(‘./abc‘,function(err,files){
if(!err){
files.forEach(function(file){
console.log(file);
})
}
})
}else{
console.log("删除失败:");
console.log(err);
}
})
2.同步删除文件夹(空)
fs.rmdirSync(‘path’)