首页 > 代码库 > Node.js中内置文件系统一些常用的方法总结

Node.js中内置文件系统一些常用的方法总结

文件系统(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 = http://www.mamicode.com/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)})

 

 

删除成功 即为nullconsole.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是一个数组 需要forEachfunctionfile))支持

 

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)

Node.js中内置文件系统一些常用的方法总结