fs模块

84 阅读2分钟

fs 模块是 Node.js 中的核心模块之一,提供了对文件系统的异步和同步操作接口。使用 fs 模块,开发者可以执行文件的读、写、删除、重命名、修改权限等操作。

主要功能

文件读写操作

  • fs.readFile() :异步读取文件的内容。
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
  • fs.readFileSync() :同步读取文件内容。
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);
  • fs.writeFile() :异步写入文件。
fs.writeFile('example.txt', 'Hello, World!', (err) => {
  if (err) throw err;
  console.log('文件已保存');
});
  • fs.writeFileSync() :同步写入文件。
fs.writeFileSync('example.txt', 'Hello, World!');
  • fs.appendFile() :将数据追加到文件的末尾。
fs.appendFile('example.txt', 'Hello, again!', (err) => {
  if (err) throw err;
  console.log('数据已追加');
});

文件流操作

  • fs.createReadStream() :创建一个可读流,可以用于逐块读取文件。
const readStream = fs.createReadStream('example.txt', 'utf8');
readStream.on('data', (chunk) => {
  console.log(chunk);
});
  • fs.createWriteStream() :创建一个可写流,可以用于逐块写入文件。
const writeStream = fs.createWriteStream('example.txt');
writeStream.write('Hello, World!');
writeStream.end();

文件夹操作

  • fs.mkdir() :异步创建目录。
fs.mkdir('exampleDir', (err) => {
  if (err) throw err;
  console.log('目录已创建');
});
  • fs.mkdirSync() :同步创建目录。
fs.mkdirSync('exampleDir');
  • fs.readdir() :读取目录内容(异步)。
fs.readdir('exampleDir', (err, files) => {
  if (err) throw err;
  console.log(files);
});
  • fs.readdirSync() :读取目录内容(同步)。
const files = fs.readdirSync('exampleDir');
console.log(files);
  • fs.rmdir() :异步删除目录。
fs.rmdir('exampleDir', (err) => {
  if (err) throw err;
  console.log('目录已删除');
});
  • fs.rmdirSync() :同步删除目录。
fs.rmdirSync('exampleDir');

文件和目录删除

  • fs.unlink() :异步删除文件。
fs.unlink('example.txt', (err) => {
  if (err) throw err;
  console.log('文件已删除');
});
  • fs.unlinkSync() :同步删除文件。
fs.unlinkSync('example.txt');

文件路径操作

  • fs.rename() :异步重命名或移动文件。
fs.rename('oldName.txt', 'newName.txt', (err) => {
  if (err) throw err;
  console.log('文件已重命名');
});
  • fs.renameSync() :同步重命名或移动文件。
fs.renameSync('oldName.txt', 'newName.txt');

3. 文件权限和状态操作

  • fs.stat() :获取文件的状态信息(异步)。
fs.stat('example.txt', (err, stats) => {
  if (err) throw err;
  console.log(stats);
});
  • fs.statSync() :获取文件的状态信息(同步)。
const stats = fs.statSync('example.txt');
console.log(stats);
  • fs.chmod() :更改文件权限(异步)。
fs.chmod('example.txt', 0o755, (err) => {
  if (err) throw err;
  console.log('文件权限已更改');
});
  • fs.chmodSync() :更改文件权限(同步)。
fs.chmodSync('example.txt', 0o755);
  • fs.chown() :更改文件的所有者和所属组(异步)。
fs.chown('example.txt', 1001, 1001, (err) => {
  if (err) throw err;
  console.log('文件所有者已更改');
});
  • fs.chownSync() :更改文件的所有者和所属组(同步)。
fs.chownSync('example.txt', 1001, 1001);