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++ 扩展. ...
随机推荐
- 921. Minimum Add to Make Parentheses Valid
Given a string S of '(' and ')' parentheses, we add the minimum number of parentheses ( '(' or ')', ...
- 快速启动工具Rulers 3.6
云盘下载:https://yunpan.cn/cq7mumZ5uzzgw (提取码:b16a) 能根据已经安装的所有软件的名称快速查询到并回车迅速打开1.Alt+空格无特效或者Alt键有特效控制显示和 ...
- Squid代理服务器(二)——配置Squid服务器
一.传统代理 (一)需求分析 局域网内,客户机访问自家的Web服务器,通过Squid代理服务器访问Web服务器,再由Squid反馈给客户机;在Squid主机上,构建Squid为客户机访问网站提供代理服 ...
- word的xml文件中给文字添加超链
<w:hlink w:dest="http://xxx.com"><w:r></w:r></wr></w:hlink>& ...
- Flink学习笔记:Operators之CoGroup及Join操作
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- 在makefile中打印错误或警告信息
在makefile中打印警告或者错误消息的方法: $(warning xxxxx) 或者 $(error xxxxx) 输出变量方式为: $(warning $(XXX))
- 海思hi35xx 开发学习(1):海思媒体处理平台架构
处理平台架构图: 主要分为: 视频输入(VI):VI 模块捕获视频图像,可对其做剪切.去噪等处理,并输出多路不同分辨率的图像数据. 视频处理(VPSS):VPSS 模块接收 VI 和解码模块发送过来的 ...
- 27.Next Permutation(下一个字典序列)
Level: Medium 题目描述: Implement next permutation, which rearranges numbers into the lexicographicall ...
- R 升级版本
从3.4.1 升级到最新 懒得去官网下载 在R studio 执行一下代码 install.packages("installr") library(installr) updat ...
- Java框架-mybatis02基本的crud操作
1.搭建mybatis框架 1)导入相关jar包 2)编写核心配置文件(配置数据库连接的相关信息以及配置mapper映射文件) 3)编写dao操作 4)编写mapper映射文件 5)编写实体类 2.执 ...