Node.js文件操作详解:fs模块同步与异步API

0 下载量 165 浏览量 更新于2024-08-31 收藏 57KB PDF 举报
"Node.js中常规的文件操作总结" 在Node.js中,文件操作的核心模块是`fs`(文件系统)模块,它提供了一系列接口用于处理文件和目录,遵循了类似UNIX(POSIX)的标准。`fs`模块的一个关键特性是所有方法都有异步和同步两种形式,以满足不同场景的需求。 ### 引入fs模块 引入`fs`模块的代码如下: ```javascript var fs = require("fs"); ``` ### 文件操作 #### 1. 读取文件 读取文件内容,可以使用`fs.readFile()`(异步)或`fs.readFileSync()`(同步): ```javascript // 异步读取 fs.readFile('example.txt', 'utf8', function(err, data) { if (err) throw err; console.log(data); }); // 同步读取 var data = fs.readFileSync('example.txt', 'utf8'); console.log(data); ``` #### 2. 写入文件 写入文件内容,使用`fs.writeFile()`(覆盖写入)或`fs.appendFile()`(追加写入): ```javascript // 异步覆盖写入 fs.writeFile('example.txt', 'Hello, World!', function(err) { if (err) throw err; console.log('文件写入成功。'); }); // 异步追加写入 fs.appendFile('example.txt', '你好,世界!', function(err) { if (err) throw err; console.log('内容已追加到文件。'); }); ``` #### 3. 删除文件 删除文件使用`fs.unlink()`(异步)或`fs.unlinkSync()`(同步): ```javascript // 异步删除 fs.unlink('example.txt', function(err) { if (err) throw err; console.log('文件已删除。'); }); // 同步删除 fs.unlinkSync('example.txt'); console.log('文件已删除。'); ``` ### 目录操作 #### 1. 创建目录 创建目录使用`fs.mkdir()`(异步)或`fs.mkdirSync()`(同步): ```javascript // 异步创建 fs.mkdir('newdir', function(err) { if (err) throw err; console.log('目录创建成功。'); }); // 同步创建 fs.mkdirSync('newdir'); console.log('目录创建成功。'); ``` #### 2. 读取目录内容 读取目录中的文件列表使用`fs.readdir()`(异步)或`fs.readdirSync()`(同步): ```javascript // 异步读取 fs.readdir('newdir', function(err, files) { if (err) throw err; files.forEach(function(file) { console.log(file); }); }); // 同步读取 var files = fs.readdirSync('newdir'); files.forEach(function(file) { console.log(file); }); ``` #### 3. 删除目录 删除空目录使用`fs.rmdir()`(异步)或`fs.rmdirSync()`(同步),如果目录非空,需要先递归删除其中的文件和子目录: ```javascript // 异步删除空目录 fs.rmdir('newdir', function(err) { if (err) throw err; console.log('目录已删除。'); }); // 同步删除空目录 fs.rmdirSync('newdir'); console.log('目录已删除。'); ``` 除了上述基础操作,`fs`模块还提供了其他高级功能,如文件重命名`fs.rename()`, 文件权限管理`fs.chmod()`, 文件大小获取`fs.stat()`, 文件硬链接和软链接操作等。熟练掌握这些操作,可以帮助开发者在Node.js环境中高效地进行文件和目录管理。