Node.js学习笔记(四) --- fs模块的使用
目录
. fs.stat 检测是文件还是目录
. fs.mkdir 创建目录
. fs.writeFile 创建写入文件
. fs.appendFile 追加文件
. fs.readFile 读取文件
. fs.readdir 读取目录
. fs.rename 重命名
. fs.rmdir 删除目录
. fs.unlink 删除文件
. fs.createReadStream 从文件流中读取数据
. fs.createWriteStream 写入文件
. 管道流
0.引入fs模块
var fs=require('fs');
1. fs.stat 检测是文件还是目录
fs.stat('html/style.css', function (err, stats) {
if (err) {
console.log(err); return false;
} console.log('文件:' + stats.isFile()); // true
console.log('目录:' + stats.isDirectory()); // false })
2. fs.mkdir 创建目录
//接收参数:
//path 将创建的目录路径
//mode 目录权限(读写权限),默认0777
//callback 回调,传递异常参数err
fs.mkdir('css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('创建目录成功');
})
3. fs.writeFile 创建写入文件
//filename (String) 文件名称
//data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
//options (Object) option数组对象,包含:
//· encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
//· mode (Number) 文件读写权限,默认值 438
//· flag (String) 默认值 ‘w'
//callback {Function} 回调,传递一个异常参数err。
fs.writeFile('t.txt', '你好nodejs', 'utf8', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('写入成功');
})
4. fs.appendFile 追加文件
fs.appendFile('t.txt', '这是追加的内容', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('写入成功');
})
5.fs.readFile 读取文件
fs.readFile('t.txt', function (err, data) {
if (err) {
console.log(err);
return false;
}
console.log(data);
console.log(data.toString());
})
6.fs.readdir 读取目录
把目录下面的文件和文件夹都获取到
fs.readdir('html', function (err, data) {
if (err) {
console.log(err);
return false;
}
console.log(data);
})
7.fs.rename 重命名
、改名 、剪切文件
1、改名
fs.rename('html/index.html', 'html/news.html', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('修改名字成功');
})
2、剪切文件
fs.rename('html/style.css', 'html/test/basic.css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('剪切成功');
})
8. fs.rmdir 删除目录
这个方法只能删除目录,不可以删除文件
删除空目录
fs.rmdir('css', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('删除目录成功');
})
9. fs.unlink 删除文件
fs.unlink('css/1.js', function (err) {
if (err) {
console.log(err);
return false;
}
console.log('删除文件成功');
})
10. fs.createReadStream 从文件流中读取数据
//流的方式读取文件
var readStream = fs.createReadStream('input.txt');
var str = '';
//保存数据
var count = 0;
//次数
readStream.on('data', function (chunk) {
str += chunk;
count++;
}) //读取完成
readStream.on('end', function (chunk) {
console.log(count);
console.log(str);
}) //读取失败
readStream.on('error', function (err) {
console.log(err);
})
11. fs.createWriteStream 写入文件
var data = '我是从数据库获取的数据,我要保存起来\n';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
for (var i = 0; i < 100; i++) {
writerStream.write(data, 'utf8');
}
//标记写入完成
writerStream.end();
writerStream.on('finish', function () {
console.log('写入完成');
})
//失败
writerStream.on('error', function () {
console.log('写入失败');
})
12. 管道流
管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外一个流中。
如上面的图片所示,我们把文件比作装水的桶,而水就是文件里的内容,我们用一根管子(pipe)连接两个桶使得水从一个桶流入另一个桶,这样就慢慢的实现了大文件的复制过程。
// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');
// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完毕");
Demo
1、判断服务器上面有没有upload目录。没有创建这个目录
var fs = require('fs');
fs.stat('upload', function (err, stats) {
if (err) { // 没有这个目录
fs.mkdir('upload', function (error) {
if (error) {
console.log(error);
return false;
}
console.log('创建成功');
})
} else {
console.log('目录已经存在');
console.log(stats.isDirectory());
}
})
Node.js学习笔记(四) --- fs模块的使用的更多相关文章
- node.js系列笔记之fs模块《二》
一:感触 最近工作比较忙,感觉也比较多,因为工作上的不顺利,再加上加班比较多,所以最近心情不是很好,再加上英语能力差到不行,所以最近半个月学习进度也比较慢, 但还是告诉自己每天都坚持学一点,即使今天心 ...
- Node.js学习笔记(一) --- HTTP 模块、URL 模块、supervisor 工具
一.Node.js创建第一个应用 如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器, 来处理客户端的请求相应.不过对 Node.js 来说,概念完全 ...
- Node.js学习笔记(2):基本模块
Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
- Node.js学习笔记(1):Node.js快速开始
Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...
- Node.js学习笔记(3):NPM简明教程
Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...
- Node.js学习笔记(4):Yarn简明教程
Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...
- Node.js学习笔记(二):模块
模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的.一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码.JSON 或者编译过的 C/C++ 扩展. ...
随机推荐
- oracle ocp题库变化,052最新考试题及答案整理-30
30.Which is true when a database instance is shut down? A. Only transactional and normal modes wait ...
- PHP内核研究:HASH表和变量 【转】
PHP HASH表 在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现. 先要说说 HASH表 typedef struct bucket { ulong h; ...
- [Flex] 修改注释中的@author方法
当然,在Flash Builder里,按Ctrl+Shift+D可以很方便在添加AsDoc注释,也可以修改,可是有些生成的@author是系统的用户名(如:administor),如何修改 修改方法之 ...
- redis 3.0 集群__故障测评
一, slave 是不能通过redis-cli 直接进行读写操作的,但是可以执行 keys, info 命令( 猜测类似全局性的不影响到原子性操作的命令应该都可以,没有一一试验) 二,集群中的某节点异 ...
- jxl读取excel
String path=""; String path2=""; File file = new File(path); File file2 = new Fi ...
- 【BZOJ1055】[HAOI2008]玩具取名(区间DP)
[HAOI2008]玩具取名 题目描述 某人有一套玩具,并想法给玩具命名.首先他选择\(WING\)四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用" ...
- 动态渲染可编辑单元格的Table
一.问题描述 问题是这样的,后台传了xArr = [x1, x2,...,xn]和yArr = [y1, y2, ..yn]两个数组,前端要渲染出表格并且可以填写每个单元格的值,然后按照一定数据结构保 ...
- 2.Bootstrap CSS
Bootstrap CSS 一.Bootstrap CSS概览 移动设备优先 移动设备优先是 Bootstrap 3 的最显著的变化. 在之前的 Bootstrap 版本中(直到 2.x),您需要手动 ...
- 【算法笔记】B1017 A除以B
1017 A除以B (20 分) 本题要求计算 A/B ,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: ...
- 九校联考(DL24凉心模拟) 整除(中国剩余定理+原根性质)
题意简述 给定 \(n, m\),求 \(n|x^m - x\) 在满足 \(x \in [1, n]\) 时合法的 \(x\) 的数量.答案模 \(998244353\).单个测试点包含多组数据. ...