Node.js文件操作详解:fs模块同步与异步API
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环境中高效地进行文件和目录管理。
2019-08-10 上传
2019-04-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38744207
- 粉丝: 344
- 资源: 2万+
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展