文件操作

在 nodejs 中,提供了 fs 模块,来供我们操作文件。在 nodejs 中,操作文件都提供了同步和异步的方式,但是在实际的开发中,我们更多的还是使用异步来进行开发。

先引入fs模块 const fs = require('fs');

1.文件的写入 fs.writeFile()
示例:

const fs = require('fs');
console.log('start');
fs.writeFile('./test.txt','this is a test',function(err){
    if(err) throw err;
    console.log('is writing!');
})
console.log('end');

2.文件的追加
正常的写入,是一个覆盖的效果,如果想要追加内容,可以使用fs.appendFile()
示例:

const fs = require('fs');
console.log('start');
fs.appendFile('./test.txt','this is a test',function(err){
    if(err) throw err;
    console.log('is writing!');
})
console.log('end');

3.文件的读取 fs.readFile()
示例:

const fs = require('fs');
console.log('start');
fs.readFile('./test.txt',function(err,data){
    if(err) throw err;
    console.log(data.toString());
})
console.log('end');

4.文件的复制 fs.copyFile()
示例:

const fs = require('fs');
fs.copyFile('./test.txt','./test5.txt',(err)=>{
    if(err) throw err
})

5.获取文件信息
通过 fs 模块的 stat 方法可以拿到一个文件的具体信息。
示例:

const fs = require('fs');
fs.stat('./test.txt',(err, status)=>{
    if(err) throw err;
    console.log(status);
});
// Stats {
//     dev: 16777222,
//     mode: 33188,
//     nlink: 1,
//     uid: 501,
//     gid: 20,
//     rdev: 0,
//     blksize: 4096,
//     ino: 12908241066,
//     size: 17,
//     blocks: 8,
//     atimeMs: 1600244238410.9111,
//     mtimeMs: 1600242358742.662,
//     ctimeMs: 1600244237825.9692,
//     birthtimeMs: 1600237795491.121,
//     atime: 2020-09-16T08:17:18.411Z,
//     mtime: 2020-09-16T07:45:58.743Z,
//     ctime: 2020-09-16T08:17:17.826Z,
//     birthtime: 2020-09-16T06:29:55.491Z }

6.删除文件 fs.unlink()
示例:

const fs = require('fs');
fs.unlink('./test.txt',(err)=>{
    if(err) throw err;
    console.log('delete OK!');
})

目录操作

1.创建目录
示例:

const fs = require('fs');
fs.mkdir('./yaoyao',(err)=>{
    if(err) throw err;
    console.log('created!');
})

2.读取目录 fs.readdir()
示例:

const fs = require('fs');
fs.readdir('./',(err,files)=>{
    if(err) throw err;
    console.log(files);
})
// [ '.DS_Store',
//   'index.js',
//   'node_modules',
//   'package-lock.json',
//   'package.json',
//   'test2.txt',
//   'test3.txt',
//   'test5.txt',
//   'yaoyao' ]