赞
踩
Node.js 的文件系统模块(fs
模块)提供了一组用于与文件系统交互的 API。这些 API 包括文件读写、文件和目录创建、删除、重命名等操作。fs
模块支持同步和异步两种方式来执行文件系统操作。
首先,你需要导入 fs
模块:
const fs = require('fs');
同步方法会阻塞 Node.js 的事件循环,直到操作完成。这些方法以 _sync
结尾。
fs.readFileSync
读取文件内容。
try {
const data = fs.readFileSync('./example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error('Error reading file:', err);
}
fs.writeFileSync
写入文件内容。
try {
fs.writeFileSync('./example.txt', 'Hello, World!', 'utf8');
console.log('File written successfully.');
} catch (err) {
console.error('Error writing file:', err);
}
异步方法不会阻塞事件循环,而是通过回调函数或返回一个 Promise
来处理结果。
fs.readFile
异步读取文件内容。
fs.readFile('./example.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
console.log(data);
});
fs.writeFile
异步写入文件内容。
fs.writeFile('./example.txt', 'Hello, World!', 'utf8', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File written successfully.');
});
fs.readdir
异步读取目录中的文件列表。
fs.readdir('./', (err, files) => {
if (err) {
console.error('Error reading directory:', err);
return;
}
console.log(files);
});
fs.mkdir
异步创建目录。
fs.mkdir('./newDir', { recursive: true }, (err) => {
if (err) {
console.error('Error creating directory:', err);
return;
}
console.log('Directory created successfully.');
});
fs.rmdir
异步删除空目录。
fs.rmdir('./newDir', (err) => {
if (err) {
console.error('Error removing directory:', err);
return;
}
console.log('Directory removed successfully.');
});
fs.unlink
异步删除文件。
fs.unlink('./example.txt', (err) => {
if (err) {
console.error('Error removing file:', err);
return;
}
console.log('File removed successfully.');
});
fs.rename
异步重命名文件或目录。
fs.rename('./oldName.txt', './newName.txt', (err) => {
if (err) {
console.error('Error renaming file:', err);
return;
}
console.log('File renamed successfully.');
});
fs.stat
异步获取文件的状态信息。
fs.stat('./example.txt', (err, stats) => {
if (err) {
console.error('Error getting file status:', err);
return;
}
console.log(stats.isFile(), stats.isDirectory());
});
从 Node.js v10 开始,fs
模块的方法也可以返回 Promise
。这对于使用 async/await
编写异步代码非常有用。
const fsPromises = fs.promises;
async function readFileAsync() {
try {
const data = await fsPromises.readFile('./example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error('Error reading file:', err);
}
}
readFileAsync();
fs
模块读写文件下面是一个简单的示例,展示了如何使用 fs
模块读取和写入文件。
const fs = require('fs'); // 写入文件 fs.writeFile('./example.txt', 'Hello, World!', 'utf8', (err) => { if (err) { console.error('Error writing file:', err); return; } console.log('File written successfully.'); // 读取文件 fs.readFile('./example.txt', 'utf8', (err, data) => { if (err) { console.error('Error reading file:', err); return; } console.log('File content:', data); }); });
fs
模块是 Node.js 中非常强大的工具,它提供了丰富的 API 来处理文件系统操作。通过使用同步和异步方法,你可以根据应用程序的需求选择最合适的方式来处理文件和目录。使用异步方法和 Promise
可以帮助你避免阻塞事件循环,并编写出更加高效和可维护的代码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。