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++ 扩展. ...
随机推荐
- Android学习之 adb被占用解决办法
1.adb被占用解决办法 方法一:(1)查看5037端口哪个进程在用 netstat -a -o 5037 (2)查看上面进程是哪个执行文件在占用 tasklist ...
- CF1059C Sequence Transformation 题解
这几天不知道写点什么,状态也不太好,搬个题上来吧 题意:给定一个数n,设一个从1到n的序列,每次删掉一个序列中的数,求按字典序最大化的GCD序列 做法:按2的倍数找,但是如果除2能得到3的这种情况要特 ...
- MVC模式学习--雇员管理系统项目开发
1, 项目开发,使用原型开发, ① 开发流程: 需求分析->设计阶段->编码阶段->测试阶段->发布阶段/维护阶段 需求阶段:PM/项目经理 对客户 设计阶段:技术人员(架构师 ...
- svn 冲突Skipped ‘inm/inm/templates‘ -- Node remains in conflict
svn在删除后,提交,更新操作后可能会报, svn update inm/inm -r 1586 Updating ‘inm/inm‘: Password: Skipped ‘inm/inm/temp ...
- v-model和v-bind的区别
VUE学习篇1 Mustache (双大括号写法)不能在 HTML 属性中使用,应使用 v-bind 指令: <div v-bind:id="dynamicId">&l ...
- centos的基本命令03(du 查看文件详情,echo清空文件内容)
1:查看/etc/passwd的内容并打印出行号 强制退出vim编辑器 :q! 这个连续两个小符号, 他代表的是『结束的输入字符』的意思.这样当空行输入eof字符,输入自动结束,不用ctrl+D c ...
- git克隆和上传项目
软件环境: 1. VS2017 2. Git ver 2.17.0.1 3. gitee.com 目的: 已有的本地项目(新建)上传到码云,使本地可以和码云同步 尝试: 先在码云上建立项目,项目名称和 ...
- js中元素、触点等各种距离的总结
每次碰到元素滚动呀.鼠标拖动呀之类的通过对比位置来触发事件的需求时,都要花很多时间来百度怎么取到自己想要的那个值,什么scrollTop.offset等等,今天就把这些东西总结一下,以后再使用的话,就 ...
- dockerfile封装docker镜像
一.使用都dockerfile封装docker镜像 1.在任意一个地方创建文件夹docker mkdir docker 2.进入文件夹并且下载一个django2.1.7的包以及一个epel.repo ...
- vue 路由传参 、接收参数
传参组件 一. <router-link :to='"/main/course?navName=" +item.columnName + "&id=&quo ...