博客
关于我
nodeJS - 5 - fs文件系统
阅读量:628 次
发布时间:2019-03-14

本文共 5105 字,大约阅读时间需要 17 分钟。

Node.js 文件系统模块操作指南

1. 如何检查文件的可访问性?

FS 模块提供了两种检查文件可访问性的方法:access()accessSync()

语法

fs.access(path, callback)fs.accessSync(path)

参数

  • path:指定要检查的文件或目录路径
  • mode(可选):执行检查的操作,默认为检查文件是否存在
  • callback:回调函数,接收错误信息和返回结果
  • 注意事项

    • 不建议在调用 fs.open()fs.readFile()fs.writeFile() 之前使用 fs.access() 检查文件状态。如有必要,建议直接打开或读取文件,处理文件不存在或状态改变的情况。

    示例

    const fs = require('fs');fs.access('./test.js', function (err) {    console.log(err ? '不可访问' : '可访问');});fs.accessSync('./text.js'); // 直接报错

    2. 如何打开文件?

    FS 模块提供了两种打开文件的方法:open()openSync()

    语法

    fs.open(path, flags, mode, callback)fs.openSync(path, flags, mode)

    参数

  • path:目标文件路径
  • flags:文件打开模式(如 r 读取模式、r+ 读写模式等)
  • mode(可选):文件操作模式
  • callback:回调函数,接收文件描述符和错误信息
  • 示例

    const fs = require('fs');fs.open('./router.js', 'a+', function (err, fd) {    if (!err) {        console.log(fd);    } else {        console.log(err);    }});fs.openSync('./router.js', 'a+');

    3. 如何读取文件?

    FS 模块提供了两种读取文件的方法:readFile()readFileSync()

    语法

    fs.readFile(path, encoding, callback)fs.readFileSync(path, encoding)

    参数

  • path:目标文件路径
  • encoding(可选):文件编码格式,默认为 utf-8
  • callback:回调函数,接收读取结果和错误信息
  • readFileSync:同步读取文件的方法
  • 示例

    fs.readFile('./output.txt', 'utf-8', function (err, data) {    console.log('err', err);    console.log('data', data);});const fileData = fs.readFileSync('./output.txt', 'utf-8');

    4. 如何写入文件?

    FS 模块提供了两种写入文件的方法:writeFile()writeFileSync()

    语法

    fs.writeFile(file, data, encoding, callback)fs.writeFileSync(file, data, encoding)

    参数

  • file:目标文件路径或文件描述符
  • data:要写入的数据
  • encoding(可选):文件编码格式,默认为 utf-8
  • callback:回调函数,接收错误信息
  • writeFileSync:同步写入文件的方法
  • 示例

    const fs = require('fs');fs.writeFile('./op.js', 'const a = "a";', 'utf-8', function (err) {    console.log(err); // null});fs.writeFileSync('./op.js', 'const b = "a";', 'utf-8');

    5. 如何追加数据到文件?

    FS 模块提供了两种追加数据到文件的方法:appendFile()appendFileSync()

    语法

    fs.appendFile(file, data, callback)fs.appendFileSync(file, data)

    参数

  • file:目标文件路径或文件描述符
  • data:要追加的数据
  • callback:回调函数,接收错误信息
  • appendFileSync:同步追加数据的方法
  • 示例

    const fs = require('fs');fs.appendFile('./test.txt', 'this is append', function (err) {    console.log(err ? '失败' : '成功');});fs.appendFileSync('./test.txt', 'this is appendSync');

    6. 如何删除文件?

    FS 模块提供了两种删除文件的方法:unlink()unlinkSync()

    语法

    fs.unlink(path, callback)fs.unlinkSync(path)

    参数

  • path:要删除的文件路径
  • callback:回调函数,接收错误信息
  • unlinkSync:同步删除文件的方法
  • 示例

    const fs = require('fs');fs.unlink('./output/output.txt', function (err) {    console.log(err);});fs.unlinkSync('./output/output.txt');

    7. 如何创建目录?

    FS 模块提供了两种创建目录的方法:mkdir()mkdirSync()

    语法

    fs.mkdir(path, callback)fs.mkdirSync(path)

    参数

  • path:要创建的目录路径
  • callback:回调函数,接收错误信息
  • mkdirSync:同步创建目录的方法
  • 示例

    const fs = require('fs');fs.mkdir('./output', function (err) {    console.log(err);});fs.mkdirSync('./output'); // 直接报错,重复创建相同目录

    8. 如何读取目录?

    FS 模块提供了两种读取目录的方法:readdir()readdirSync()

    语法

    fs.readdir(path, callback)fs.readdirSync(path)

    参数

  • path:目标目录路径
  • callback:回调函数,接收目录文件名数组和错误信息
  • readdirSync:同步读取目录的方法
  • 示例

    const fs = require('fs');fs.readdir('./', function (err, files) {    console.log(err || files);});console.log(fs.readdirSync('./'));

    9. 如何查询文件目录具体信息?

    FS 模块提供了两种查询文件或目录详细信息的方法:stat()statSync()

    语法

    fs.stat(path, callback)fs.statSync(path)

    参数

  • path:目标文件或目录路径
  • callback:回调函数,接收统计信息对象和错误信息
  • statSync:同步查询文件或目录详细信息的方法
  • 属性

    • isFile():是否为文件
    • isDirectory():是否为目录
    • atimeatimeMs:访问时间
    • mtimemtimeMs:修改时间
    • ctimectimeMs:创建时间
    • birthtimebirthtimeMs:生命周期时间

    示例

    fs.readdir('./', function (err, files) {    if (!err) {        files.forEach((file) => {            fs.stat('./' + file, function (error, stats) {                if (!error) {                    console.log(file, 'is FILE', stats.isFile());                    console.log(file, 'is DIR', stats.isDirectory());                }            });        });    }});const stats = fs.statSync('./');

    10. 如何移除文件夹?

    FS 模块提供了两种移除文件夹的方法:rmdir()rmdirSync()

    语法

    fs.rmdir(path, callback)fs.rmdirSync(path)

    参数

  • path:要删除的文件夹路径
  • callback:回调函数,接收错误信息
  • rmdirSync:同步移除文件夹的方法
  • 示例

    const fs = require('fs');fs.rmdir('./output', function (err) {    console.log(err || '成功');});fs.rmdirSync('./output');

    11. 如何监视文件变化?

    FS 模块提供了文件变化监视的方法:watchFile()unwatchFile()watch()

    方法说明

    • watchFile():监听文件变化,触发回调函数
    • unwatchFile():停止监视特定文件或所有文件的变化
    • watch():更高效的文件或目录变化监视方法,支持递归子目录

    语法

    fs.watchFile(filename, options, callback)fs.unwatchFile(filename, callback)fs.watch(filename, options, callback)

    参数

    • filename:要监视的文件或目录路径
    • options:配置选项(如 persistentinterval
    • callback:回调函数,接收事件类型和文件名
    • eventType:事件类型(renamechange

    示例

    const fs = require('fs');fs.watchFile('./test.txt', function (curr, prev) {    console.log(curr);    console.log('+++++++++ ========= ==+++++++++++');    console.log(prev);    fs.unwatchFile('./test.txt'); // 一次修改就停止监听});// 示例二const fs = require('fs');const a = fs.watch('./test.txt', function (eventType, fileName) {    console.log(eventType);    console.log('====== =++++++++ == ========');    console.log(fileName);    this.close(); // 停止监视});

    12. 如何创建可读流和可写流?

    FS 模块提供了创建流的方法:createReadStream()createWriteStream()

    语法

    fs.createReadStream(path, options)fs.createWriteStream(path, options)

    示例

    const fs = require('fs');fs.createReadStream('text.txt');fs.createWriteStream('text.txt');

    通过以上方法,您可以轻松地进行文件操作,满足各种开发需求。

    转载地址:http://ybvoz.baihongyu.com/

    你可能感兴趣的文章
    nodejs libararies
    查看>>
    nodejs npm常用命令
    查看>>
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    nodejs 创建HTTP服务器详解
    查看>>
    nodejs 发起 GET 请求示例和 POST 请求示例
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 开发websocket 笔记
    查看>>
    nodejs 的 Buffer 详解
    查看>>
    nodejs 读取xlsx文件内容
    查看>>
    nodejs 运行CMD命令
    查看>>
    Nodejs+Express+Mysql实现简单用户管理增删改查
    查看>>
    nodejs+nginx获取真实ip
    查看>>
    nodejs-mime类型
    查看>>
    NodeJs——(11)控制权转移next
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    nodejs与javascript中的aes加密
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    nodejs中express的使用
    查看>>