nodejs文件读写操作完整版

在Node.js中,文件操作是非常常见的任务,涉及到读取文件、写入文件、创建文件、删除文件等。Node.js提供了几个内置的模块来帮助我们进行这些操作,最常用的两个模块是fs(文件系统)和path

1. 使用fs模块

fs模块是Node.js的核心模块,用于处理文件系统的操作。

读取文件

使用fs.readFile()方法可以异步地读取文件内容。

const fs = require('fs');
 
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

或者使用fs.promises.readFile()方法进行Promise风格的读取。

const fs = require('fs').promises;
 
async function readFile() {
  try {
    const data = await fs.readFile('example.txt', 'utf8');
    console.log(data);
  } catch (err) {
    console.error(err);
  }
}
 
readFile();
写入文件

使用fs.writeFile()方法可以异步地写入文件内容。如果文件不存在,它会被创建。

const fs = require('fs');
 
fs.writeFile('example.txt', 'Hello, Node.js!', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('File has been written.');
});

或者使用fs.promises.writeFile()方法进行Promise风格的写入。

const fs = require('fs').promises;
 
async function writeFile() {
  try {
    await fs.writeFile('example.txt', 'Hello, Node.js!');
    console.log('File has been written.');
  } catch (err) {
    console.error(err);
  }
}
 
writeFile();
创建文件和目录

使用fs.writeFile()fs.mkdir()可以创建文件或目录。fs.mkdir()用于创建目录。

const fs = require('fs');
const path = require('path');
 
// 创建文件(如果文件已存在,则覆盖)
fs.writeFile('newfile.txt', 'New content', (err) => { /* ... */ });
 
// 创建目录(递归地创建,如果父目录不存在)
fs.mkdir(path.join(__dirname, 'newdir'), { recursive: true }, (err) => { /* ... */ });

或者使用fs.promises版本:

const fs = require('fs').promises;
const path = require('path');
 
async function createFileAndDir() {
  try {
    await fs.writeFile('newfile.txt', 'New content'); // 创建或覆盖文件
    await fs.mkdir(path.join(__dirname, 'newdir'), { recursive: true }); // 创建目录(递归)
  } catch (err) {
    console.error(err);
  }
}

2. 使用path模块处理路径问题

path模块用于处理文件和目录的路径。这在跨平台开发时特别有用,因为不同的操作系统使用不同的路径分隔符。

const path = require('path');
const filePath = path.join(__dirname, 'example', 'file.txt'); // 跨平台兼容的路径连接方式。例如:在Windows上是'example\file.txt',在Unix系统上是'example/file.txt'。
console.log(filePath); // 输出: /your/current/dir/example/file.txt (或 Windows 上的等效路径)

3. 使用流进行大文件处理(可选)

  • 对于大文件的读写,推荐使用流(Streams),这样可以更有效地管理内存使用。例如,使用fs.createReadStream()fs.createWriteStream()。 示例略过,请查阅Node.js文档了解详细信息。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值