var fs = require("fs");//fs 系统文件模块,对文件进行操作.Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。

1.文件读取

var fs = require("fs");
fs.readFile('./a.txt',function(err,data){
if(err){
return console.error(err);
}
console.log("异步");
console.log(data.toString());
})
var dataSyn = fs.readFileSync('./a.txt');
console.log("同步")
console.log(dataSyn.toString())

运行结果:

同步
a.txt文件
异步
a.txt文件

2.文件信息

语法

以下为通过异步模式获取文件信息的语法格式:

fs.stat(path, callback)

参数

参数使用说明如下:

path - 文件路径。

callback - 回调函数,带有两个参数如:(err, stats), stats 是 fs.Stats 对象。

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的

实例:

var fs = require("fs");
fs.stat('./a.txt',function(err,data){
if(err){
return console.error(err);
}
console.log("异步");
console.log(data);
})
var dataSyn = fs.statSync('./a.txt');
console.log("同步")
console.log(dataSyn)

运行结果中stat信息:

ino: 3940649673949397,
size: 11,    ---文件大小,kb
blocks: undefined,
atime: 2017-07-08T02:25:14.894Z,
mtime: 2017-07-08T02:27:23.823Z,
ctime: 2017-07-08T02:27:23.823Z,
birthtime: 2017-07-08T02:25:14.894Z  ---文件产生时间

常用到的方法:

dataSycn.birthtime

dataSycn.size

dataSyn.isDirectory()

3.写文件

语法

以下为异步模式下写入文件的语法格式:

fs.writeFile(filename, data[, options], callback)

如果文件存在,该方法写入的内容会覆盖旧的文件内容。

参数

参数使用说明如下:

path - 文件路径。

data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(流) 对象。

options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'

callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。

实例:

// fs.writeFile(filename,data,[options],callback);
var w_data = '这是一段通过fs.writeFile函数写入的内容;\r\n';
var w_data = new Buffer(w_data); /**
* filename, 必选参数,文件名
* data, 写入的数据,可以字符或一个Buffer对象
* [options],flag,mode(权限),encoding
* callback 读取文件后的回调函数,参数默认第一个err,第二个data 数据
*/ fs.writeFile(__dirname + '/test.txt', w_data, {flag: 'a'}, function (err) {
if(err) {
console.error(err);
} else {
console.log('写入成功');
}
});

追加方式写文件

// fs.appendFile(filename,data,[options],callback);

fs.appendFile(__dirname + '/test.txt', '使用fs.appendFile追加文件内容', function () {
console.log('追加内容完成');
});

4.删除文件

语法

以下为删除文件的语法格式:

fs.unlink(path, callback)

参数

参数使用说明如下:

path - 文件路径。

callback - 回调函数,没有参数。

实例

var fs = require("fs");

console.log("准备删除文件!");
fs.unlink('./my.txt', function(err) {
if (err) {
return ;
}
console.log("文件删除成功!");
});

5.删除文件夹

//获取当前目录下面所有的文件及文件夹
fs.readdir(".",function(err,files){
console.log(files);
});

删除空文件

语法
以下为删除文件的语法格式:
fs.rmdir(path, callback)

参数
参数使用说明如下:
path - 文件夹路径。
callback - 回调函数,没有参数。

var fs = require(“fs”);
fs.rmdir('./aaa', function(err) {
if (err) {
return ;
}
console.log("文件夹删除成功!");
});

删除有内容的文件

/删除一个非空的文件夹(递归)
function delDir(dirPath){
//删除目录,必须先删除目录中所有内容(文件和文件夹)。
//获取目录下面的所有内容。
var files = fs.readdirSync(dirPath); //遍历文件列表
for (var i=0;i<files.length;i++){
//文件名
var file = files[i];
//拼接路径(目录路径+文件名)
var path = dirPath+"/"+file; //获取path对应文件信息对象
var stat = fs.statSync(path);
//通过文件信息对象判断是否是有一个文件
if(stat.isFile()){//文件
fs.unlinkSync(path);
}else{//文件夹
delDir(path);
}
} //删除文件夹
fs.rmdirSync(dirPath);
} delDir("./a");

6.创建目录

//使用fs.mkdir创建目录
//fs.mkdir(path, [mode], callback); /**
* path, 被创建目录的完整路径及目录名;
* [mode], 目录权限,默认0777
* [callback(err)], 创建完目录回调函数,err错误对象
*/ fs.mkdir(__dirname + '/fsDir', function (err) {
if(err)
throw err;
console.log('创建目录成功')
});

【08】node 之 fs文件的更多相关文章

  1. node(03 fs文件模块)

    我们通过读取一个文件内容并将内容写入到另外一个文件中. fs.createWriteStream 写入文件其实 这个可以看文档 参考这个更全一店 https://www.jianshu.com/p/d ...

  2. Node内核基本自带模块fs 文件的读写

    在node的内核中存在一些内置的模块 这些是最基本的服务端所必要的 1:node全局环境:global类似于浏览器端的window 2:文件读取模块:fs fs模块同时提供了异步和同步的方法. 'us ...

  3. 【node】fs模块,文件和目录的操作

    检查文件是否存在,查询文件信息 fs.stat() fs.stat('./server.js', function (err, stat) { if (stat && stat.isF ...

  4. node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块

    第二章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...

  5. 使用node的fs读取文件

    啊啊啊啊啊啊啊啊啊啊啊啊啊啊,被node的fs坑了一下午,我又爬上来了,要坚强的笑着活下去,嗯,没毛病老铁. let http = require('http'); let fs = require( ...

  6. Node.js写文件的三种方法

    Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...

  7. nodejs零基础详细教程2:模块化、fs文件操作模块、http创建服务模块

    第二章  建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑 ...

  8. [Nodejs] node的fs模块

    fs 模块 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API. Node 导入文件系统模块(fs).Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如 ...

  9. node中间层实现文件上传

    一般情况下,前端的文件上传一般都是通过form表单的(<input type="file" />)来完成文件的上传,如果使用node中间层完成跨域,文件的上传就需要在n ...

随机推荐

  1. HTML第四章:初始css

    CSS样式:                 一.为什么要使用CSS;可以让页面更美观.有利于开发速度.                 二.什么是CSS:全称cascading style shee ...

  2. JS时间格式和时间戳的相互转换

    时间戳转化为日期的方式 ; var newDate = new Date(); newDate.setTime(timestamp * ); // Mon May 28 2018 console.lo ...

  3. ElasticSearch High Level REST API【1】文档基本操作

    获取ES客户端 ES的提供了四种Java客户端,分别为节点客户端(node client).传输客户端(Transport Client).低级REST客户端.高级REST客户端. 节点客户端作为集群 ...

  4. 抽象类&接口区别

    抽象类:1.可以有构造方法.   2.可以有抽象方法也可以有具体方法. 3.权限修饰符可以是private.默认.protected.public. 4.可以定义成员变量.   5.interface ...

  5. 自动化测试 ubuntu多设备连接不识别

    环境: ubuntu系统 usb2.0 16个口集线器 遇到问题: 连接手机到第11台设备时出现adb devices不显示的现象导致无法通过adb操作 问题排除思路; 1.通过dmesg查看设备连接 ...

  6. Cisco交换机与路由器命令总结

    1.查看信息 show version    查看版本及引导信息 show running-config     查看运行设置 show startup-config     查看开机设置 show ...

  7. 六、MySQL 删除数据库

    MySQL 删除数据库 使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过 ...

  8. Linux问题分析或解决_samba无法连接

    1. windows设置方面问题 问题:window能连接部分服务器的samba共享,一部分无法连接.报错如截图. 解决:前提---其他人连接都没有问题,发现有问题的连接服务器的电脑是win10,而w ...

  9. gitLab 服务器搭建 (自己服务器上搭建gitLab)

    环境 lunix(ubuntu) 1:添加文件 在   /etc/apt/sources.list.d/gitlab-ce.list 中添加一行 deb https://mirrors.tuna.ts ...

  10. Linux IO调度方法

    目录 I/O调度的4种算法 I/O调度程序的测试 ionice IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电 ...