Node.js的fs模块(File System Module)是Node.js内置的文件系统模块,用于读写文件,它提供了一组API,可以对文件和目录进行操作,如创建、读取、写入、删除等。
1. 引入fs模块
在Node.js中,可以通过require('fs')
来引入fs模块。
const fs = require('fs');
2. 文件读取
可以使用fs模块中的readFile()
方法来读取文件内容。
fs.readFile('/etc/passwd', (err, data) => { if (err) throw err; console.log(data); });
也可以使用同步的方式读取文件:
try { const data = fs.readFileSync('/etc/passwd'); console.log(data); } catch (err) { console.error(err); }
3. 文件写入
可以使用fs模块中的writeFile()
方法来写入文件内容。
const data = 'Hello, World!'; fs.writeFile('/tmp/test.txt', data, (err) => { if (err) throw err; console.log('The file has been saved!'); });
也可以使用同步的方式写入文件:
const data = 'Hello, World!'; try { fs.writeFileSync('/tmp/test.txt', data); console.log('The file has been saved!'); } catch (err) { console.error(err); }
4. 文件状态
可以使用fs模块中的stat()
方法获取文件状态。
fs.stat('/etc/passwd', (err, stats) => { if (err) throw err; console.log(stats); });
也可以使用同步的方式获取文件状态:
try { const stats = fs.statSync('/etc/passwd'); console.log(stats); } catch (err) { console.error(err); }
5. 文件删除
可以使用fs模块中的unlink()
方法删除文件。
fs.unlink('/tmp/test.txt', (err) => { if (err) throw err; console.log('File deleted'); });
也可以使用同步的方式删除文件:
try { fs.unlinkSync('/tmp/test.txt'); console.log('File deleted'); } catch (err) { console.error(err); }
6. 目录操作
可以使用fs模块中的mkdir()
方法创建目录。
fs.mkdir('/tmp/testDir', { recursive: true }, (err) => { if (err) throw err; console.log('Directory created'); });
也可以使用同步的方式创建目录:
try { fs.mkdirSync('/tmp/testDir', { recursive: true }); console.log('Directory created'); } catch (err) { console.error(err); }
相关问题与解答:
Q1: Node.js中如何判断一个文件是否存在?
A1: 可以使用fs模块中的exists()
方法来判断文件是否存在。
fs.access('/etc/passwd', fs.constants.F_OK, (err) => { console.log(err ? 'File does not exist' : 'File exists'); });
Q2: Node.js中如何判断一个目录是否为空?
A2: 可以使用fs模块中的readdir()
方法来读取目录下的所有文件,然后判断返回的文件列表是否为空。
fs.readdir('/tmp/testDir', (err, files) => { if (err) throw err; console.log(files.length === 0 ? 'Directory is empty' : 'Directory is not empty'); });
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/936367.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复