博客
关于我
node中fs模块之文件操作
阅读量:792 次
发布时间:2023-02-16

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

关于Node.js文件操作的实用指南

在Node.js开发过程中,文件操作是日常工作中的常见需求。以下是一些实用的文件操作方法和技巧,帮助你高效完成文件管理任务。

  • 异步读取文件

    如果你需要处理文件读取任务,可以使用fs.readFile方法。它允许你以异步方式读取文件内容。示例代码如下:

    var fs = require('fs');  
    fs.readFile('input.txt', function(err, data) {
    if (err) {
    console.log('读取文件失败:', err);
    } else {
    console.log('异步读取文件内容:', data.toString());
    }
    });
  • 同步读取文件

    如果你需要立即获取文件内容,可以使用fs.readFileSync方法。它返回一个Promise,或者直接返回读取结果。示例代码如下:

    var fs = require('fs');  
    var data = fs.readFileSync('input.txt');
    console.log('同步读取文件内容:', data.toString());
  • 重命名文件

    如果需要修改文件名,可以使用fs.rename方法。它支持异步操作,可以通过回调函数处理异常。示例代码如下:

    var fs = require('fs');  
    fs.rename('hello.txt', 'index.txt', function(err) {
    if (err) {
    console.log('重命名失败:', err);
    } else {
    console.log('文件已重命名成功');
    }
    });
  • 同步重命名文件

    如果你不需要处理异常,可以使用fs.renameSync方法。它直接返回结果。示例代码如下:

    var fs = require('fs');  
    fs.renameSync('hello.txt', 'index.txt');
  • 获取文件信息

    如果需要获取文件的详细信息(如文件大小、权限等),可以使用fs.stat方法。它接受文件路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.stat('index.txt', function(err, stats) {
    if (err) {
    console.log('获取文件信息失败:', err);
    } else {
    console.log('文件信息:');
    console.log('文件大小:', stats.size);
    console.log('文件是否为文件:', stats.isFile());
    console.log('文件是否为目录:', stats.isDirectory());
    }
    });
  • 打开文件

    如果需要打开文件进行读写操作,可以使用fs.open方法。它支持不同的文件打开模式,如读取、写入或追加。示例代码如下:

    var fs = require('fs');  
    fs.open('index.txt', 'r+', function(err, fd) {
    if (err) {
    console.log('打开文件失败:', err);
    } else {
    console.log('文件已打开成功');
    }
    });
  • 写入文件

    如果需要向文件中写入内容,可以使用fs.writeFile方法。它支持字符串、Buffer等类型的数据写入。示例代码如下:

    var fs = require('fs');  
    fs.writeFile('input.txt', '这是新写入的内容', 'utf8', function(err) {
    if (err) {
    console.log('写入文件失败:', err);
    } else {
    console.log('文件已成功写入新内容');
    }
    });
  • 追加写入文件

    如果需要在文件末尾追加内容,可以使用fs.appendFile方法。示例代码如下:

    var fs = require('fs');  
    fs.appendFile('index.txt', '窗前明月光,疑是地上霜', 'utf8', function(err) {
    if (err) {
    console.log('追加写入失败:', err);
    } else {
    console.log('追加写入成功');
    }
    });
  • 关闭文件

    在读取或写入文件后,记得关闭文件以释放资源。使用fs.close方法即可。示例代码如下:

    var fs = require('fs');  
    fs.open('input.txt', 'r+', function(err, fd) {
    if (err) {
    console.log('打开文件失败:', err);
    } else {
    console.log('文件已打开成功');
    fs.close(fd, function(err) {
    if (err) {
    console.log('关闭文件失败:', err);
    } else {
    console.log('文件已成功关闭');
    }
    });
    }
    });
  • 截取文件内容

    如果需要截取文件的部分内容,可以使用fs.ftruncate方法。它接受文件描述符和截取的长度。示例代码如下:

    var fs = require('fs');  
    fs.open('input.txt', 'r+', function(err, fd) {
    if (err) {
    console.log('打开文件失败:', err);
    } else {
    console.log('文件已打开成功');
    fs.ftruncate(fd, 10, function(err) {
    if (err) {
    console.log('截取文件失败:', err);
    } else {
    console.log('文件已截取到10字节');
    fs.read(fd, new Buffer(1024), 0, 1024, 0, function(err, bytes) {
    if (err) {
    console.log('读取文件失败:', err);
    } else {
    console.log('已读取到:', bytes);
    if (bytes > 0) {
    console.log(buf.slice(0, bytes).toString());
    }
    }
    });
    }
    });
    }
    });
  • 删除文件

    如果需要删除文件,可以使用fs.unlink方法。它接受文件路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.unlink('input.txt', function(err) {
    if (err) {
    console.log('删除文件失败:', err);
    } else {
    console.log('文件删除成功');
    }
    });
  • 创建目录

    如果需要创建目录,可以使用fs.mkdir方法。它接受目录路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.mkdir('test', function(err) {
    if (err) {
    console.log('创建目录失败:', err);
    } else {
    console.log('目录已成功创建');
    }
    });
  • 查看目录内容

    如果需要查看目录中的文件,可以使用fs.readdir方法。它接受目录路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.readdir('../file/', function(err, files) {
    if (err) {
    console.log('读取目录失败:', err);
    } else {
    files.forEach(function(file) {
    console.log('目录中的文件:', file);
    });
    }
    });
  • 删除目录

    如果需要删除目录,可以使用fs.rmdir方法。它接受目录路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.rmdir('test', function(err) {
    if (err) {
    console.log('删除目录失败:', err);
    } else {
    console.log('目录已成功删除');
    }
    });
  • 检查文件路径是否存在

    如果需要检查文件或目录是否存在,可以使用fs.exists方法。它接受路径和回调函数。示例代码如下:

    var fs = require('fs');  
    fs.exists('/chengyi', function(exists) {
    if (exists) {
    console.log('路径存在');
    } else {
    console.log('路径不存在');
    }
    });
  • 其他文件操作

    除了上述方法,你还可以使用fs.createWriteStream来高效地进行文件写入操作,适用于大文件或持续写入场景。例如:

    var fs = require('fs');  
    var writeStream = fs.createWriteStream('output.txt');
    writeStream.write('这是写入的内容\n', 'utf8');
    writeStream.end(function(err) {
    if (err) {
    console.log('写入失败:', err);
    } else {
    console.log('写入成功');
    }
    });
  • 这些方法为你提供了在Node.js中处理文件操作的多种选择,根据具体需求选择合适的方法可以提高你的开发效率。

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

    你可能感兴趣的文章
    Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
    查看>>
    nodejs + socket.io 同时使用http 和 https
    查看>>
    NodeJS @kubernetes/client-node连接到kubernetes集群的方法
    查看>>
    NodeJS API简介
    查看>>
    Nodejs express 获取url参数,post参数的三种方式
    查看>>
    nodejs http小爬虫
    查看>>
    nodejs libararies
    查看>>
    nodejs npm常用命令
    查看>>
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    NodeJS yarn 或 npm如何切换淘宝或国外镜像源
    查看>>
    nodejs 中间件理解
    查看>>
    nodejs 创建HTTP服务器详解
    查看>>
    nodejs 发起 GET 请求示例和 POST 请求示例
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 开发websocket 笔记
    查看>>
    nodejs 的 Buffer 详解
    查看>>
    NodeJS 的环境变量: 开发环境vs生产环境
    查看>>
    nodejs 读取xlsx文件内容
    查看>>
    nodejs 运行CMD命令
    查看>>