Node.js文件操作详解:fs模块同步与异步API
190 浏览量
更新于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环境中高效地进行文件和目录管理。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-04-27 上传
2019-04-12 上传
2019-08-10 上传
2019-08-10 上传
2021-05-07 上传
2021-05-28 上传
weixin_38744207
- 粉丝: 344
- 资源: 2万+
最新资源
- HDS:家居设计解决方案API
- QT单例模式,点击控件显示一次界面
- website:Codechef-SGGS-章节网站
- BLayers:Razor组件和OpenLayers JavaScript互操作
- Gabor 函数:生成二维空间 Gabor 函数。 用于生成模型简单的细胞感受野。-matlab开发
- set border body for some websites-crx插件
- 冲绳
- test softwaretest softwaretest softwaretest software
- C++网络编程编译好的Libcurl库c++ include文件和libcurl.lib下载后直接用
- build-your-own-vuex:精简vuex源代码,用最少的代码实现一个可以快速阅读的精简版vuex(预期总代码行数不超过100行)
- tvmm:Tiny Virtual Machine Monitor (TVMM) 是另一种虚拟机监视器,它是为教育和验证目的而开发的
- thready:Nim中线程的备用接口
- ECGmatematica.mat,交通标志识别MATLAB源码,matlab源码怎么用
- Count misc prices-crx插件
- WORKDAYnode.js
- apps-para-treinar-[removed]列表应用程序JavaScript