linux

Linux下Node.js的文件系统如何操作

小樊
32
2025-12-06 13:04:43
栏目: 编程语言

Linux 下 Node.js 文件系统操作指南

一 核心模块与调用方式

二 常用操作代码示例

// 1) 读取
const fs = require('fs').promises;
const path = require('path');
const os = require('os');

const file = path.join(__dirname, 'data.txt');
const content = await fs.readFile(file, 'utf8');
console.log(content);

// 2) 写入(覆盖)与追加
await fs.writeFile(file, '第一行\n', { mode: 0o644 }); // 权限示例:0644
await fs.appendFile(file, `追加行 ${os.EOL}`, 'utf8');

// 3) 复制
await fs.copyFile(file, path.join(__dirname, 'data.bak.txt'));

// 4) 目录:创建多级、遍历
await fs.mkdir(path.join(__dirname, 'logs'), { recursive: true });
const files = await fs.readdir(__dirname);
console.log(files);

// 5) 重命名/移动
await fs.rename(
  path.join(__dirname, 'data.bak.txt'),
  path.join(__dirname, 'archive', 'data.txt')
);

// 6) 删除:文件与目录(递归)
await fs.unlink(path.join(__dirname, 'archive', 'data.txt'));
await fs.rm('logs', { recursive: true, force: true }); // 递归删除目录

// 7) 状态与类型判断
const st = await fs.stat(file);
console.log(st.isFile(), st.isDirectory());

三 大文件与性能建议

const fs = require('fs');
const read = fs.createReadStream('big.log', 'utf8');
const write = fs.createWriteStream('big.log.bak');

read.on('error', err => console.error('read error', err));
write.on('error', err => console.error('write error', err));
write.on('finish', () => console.log('copy done'));

read.pipe(write); // 通过管道高效传输
const fs = require('fs');
const readline = require('readline');

const rl = readline.createInterface({
  input: fs.createReadStream('big.log', 'utf8'),
  crlfDelay: Infinity
});

for await (const line of rl) {
  // 处理每一行
  console.log(line);
}

四 权限与跨平台注意

0
看了该问题的人还看了