三、fs文件操作模块
fs模块用于文件的读写等操作。
该模块有如下这些方法:
1、fs.stat() : 检测是文件还是目录
const fs = require('fs');
fs.stat('test.html',function(err,stats){
if(err){
console.log(err);
}else{
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);
}else{
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。
var str = "Hello Node.js";
fs.writeFile('write.txt', str, 'utf8', function (err) {
if (err) {
console.log(err);
}else{
console.log("创建成功");
}
});
如果该文件不存在则创建该名称文件并写入数据。如果多次写入的话,那么后面写入的内容会覆盖前面写入的内容。
4、fs.appendFile():追加文件
用法与writeFile相同,只是对此写入的话不会覆盖之前的数据,而是在其后追加数据。
5、fs.readFile() :读取文件
回调函数中的data即包含了读取的数据。
fs.readFile('write.txt',function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
6、fs.readdir():读取目录,获取目录下面的文件和文件夹。
fs.readdir('css',function(err,data){
if (err){
console.log(err);
}else{
console.log(data);
}
});
不过这样只能获取第一级目录
7、fs.rename():重命名文件
fs.rename('html/index.html','html/news.html',function(err){
if (err) {
console.log(err);
} else {
console.log('修改名字成功');
}
})
这样就可以把index.html文件名修改为news.html。
这个方法还可以实现文件剪切功能:
fs.rename('html/css/basic.css','html/style.css',function(err){
if(err){
console.log(err);
return false;
}
console.log('剪切成功');
})
这样就可以把html/css/basic.css剪切到html/style.css。
8、fs.redir():删除目录
fs.rmdir('text',function(err){
if(err){
console.log(err);
return false;
}
console.log('删除目录成功');
})
这里的删除只能删除空目录。
9、fs.unlink():删除文件
fs.unlink('index.txt',function(err){
if(err){
console.log(err);
return false;
}
console.log('删除文件成功');
})
10、fs.createReadStream():以流的方式读取数据
这种方式读取文件是分块读取的
// 创建一个可以读取的流,读取文件 input.txt 中
var readStream=fs.createReadStream('input.txt');
var str='';/*保存数据*/
var count=0; /*次数*/
//触发data事件,开始取读数据
readStream.on('data',function(chunk){
str+=chunk;
count++;
})
//触发end事件,读取完成
readStream.on('end',function(chunk){
console.log(count);
console.log(str);
})
//读取失败
readStream.on('error',function(err){
console.log(err);
})
这种读取方式很高效,适合取读大批量数据。如果所读数据量不是很大的话使用上面的readFile方法即可。
11、fs.createWriteStream():以流的方式写入文件
var data = '我是从数据库获取的数据,我要保存到文件中去\n';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
//开始写入数据
writerStream.write(data,'utf8');
//标记写入完成
writerStream.end();
//触发finish事件,完成写入
writerStream.on('finish',function(){
console.log('写入完成');
})
//失败
writerStream.on('error',function(){
console.log('写入失败');
})
同样,如果要写入的文件不存在就创建该文件再写入。
12、管道流读取
管道提供了一个输出流到输入流的机制。通常我们用于从一个流中获取数据并将数据传递到另外的一个流中。
// 创建一个可读流,这是管道的输出端
var readerStream = fs.createReadStream('input.txt');
// 创建一个可写流,这是管道的输入端
var writerStream = fs.createWriteStream('output.txt');
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完毕");
三、fs文件操作模块的更多相关文章
- nodejs零基础详细教程2:模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块
第二章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...
- 02-Node.js学习笔记-系统模块fs文件操作
2.1.什么是系统模块 Node 运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所有我们又称Node运行环境提供的API为系统模块 3.1系统模块fs文件操作 //f :file ...
- nodejs 文件操作模块 fs
const fs=require("fs"); //文件操作 //创建目录 ./ 代表当前目录 ../ 代表上级目录fs.mkdir('./test',function(err){ ...
- nodejs文件操作模块FS(File System)常用函数简明总结(转)
件系统操作相关的函数挺多的.首先可以分为两大类. 一类是异步+回调的. 一类是同步的. 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1. 首先是一类最常规的读写函数,函数名称 ...
- node 学习笔记 - fs 文件操作
本文同步自我的个人博客:http://www.52cik.com/2015/12/03/learn-node-fs.html 最近看到群里不少大神都开始玩 node 了,我感觉跟他们步伐越来越大了, ...
- Python(三)——文件操作
在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...
- python3csv与xlsx文件操作模块(csv、xlsxwriter)
一.csv模块实现csv文件操作 1.CSV介绍 CSV,全称为Comma-Separated Values,它以逗号分隔值,其文件以纯文本形式存储表格数据,该文件是一个字符序列,可以由任意数目的记录 ...
- 常用文件操作模块json,pickle、shelve和XML
一.json 和 pickle模块 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Js ...
随机推荐
- UVM挑战及概述
UVM的调度也具有其独特的挑战,尤其是在调试的领域.其中的一些挑战如下: 1. Phase的管理:objections and synchronization 2. 线程调试 3. Tracing i ...
- Android(java)学习笔记172:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.j ...
- Web Server Notifier 是chrome网上商店的一个插件
Web Server Notifier 是chrome网上商店的一个插件
- IIR数字滤波器
对于N阶IIR的计算方程式为: 一阶 Y(n)=a∗X(n)+(1−a)∗Y(n−1) 二阶 y[n]=b0⋅x[n]+b1⋅x[n−1]+b2⋅x[n−2]−a1⋅y[n−1]−a2⋅y[n−2]
- python基础一 day3 列表方法
ls=['a','b','c','d','a','b','c','d']lst=['e','f','g','h']# 增加# ls.append('a') 将元素a添加至列表ls的尾部# ls.ext ...
- 02numpy
一. Numpy定义 一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型.多维数组上执行数值运算 二. Numpy使用 1.创建数组 2.nu ...
- Gym-101615C-Fear Factoring(数论)
分析 题意是求 L - R之间的数的因数和 我们知道如果对于一个数 i ( i < k = sqrt(R)),那么一定有一个数 R/i 也是R的因数 遍历 i = 2 - k,然后对于每一个 i ...
- laravel 数据导出
支持:php 7.0 以上 三种方案总结介绍: 第一种:最简单且不会有长久隐患.但不适合数据量多 第二种: 适合中等数据量,不会有长久隐患.但导出时极占内存 第三种:适合大量数据,不会占据 ...
- POJ 2553 The Bottom of a Graph(强连通分量的出度)
题意: 求出图中所有汇点 定义:点v是汇点须满足 --- 对图中任意点u,若v可以到达u则必有u到v的路径:若v不可以到达u,则u到v的路径可有可无. 模板:http://www.cnblogs.co ...
- java基础之switch
switch 语句由一个控制表达式和多个case标签组成. switch 控制表达式支持的类型有byte.short.char.int.enum(Java 5).String(Java 7). swi ...