node.js文件系统
FS文件系统
第一次用这个的时候非常爽,可以在代码层编写“增删改查”文件的功能。分解里面提供的方法,接下来我们从头创建开始,最后删除文件结束,一套流程接下fs文件系统的神奇。
要使用fs文件系统就要引用,否则无法实现功能,代码如下
//引入文件系统
var fs = require('fs');
新建目录:mkdir
//引入文件系统
var fs = require('fs'); //创建目录
fs.mkdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('创建目录成功!');
}
});
第一步完成了,在当前项目中已经存在一个叫html的文件夹,当我想拿mkdir去创建单独文件是无法实现的,起结果还是一个文件夹,怎么去创建单独的文件呢?
新建文件:writeFlie
//引入文件系统
var fs = require('fs'); //创建文件
fs.writeFile('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});
执行之后,在html文件夹下又多了一个html.txt类型的文件,对于上段代码可重复操作,因为它既能写又能创建文件。
接下来又要考虑一个问题,既然有文件了,但是里面内容怎么去编写,还是同一个方法,就是多了一个参数变化,从下面代码中体现。
//引入文件系统
var fs = require('fs'); var _txt = 'hello node.js'; //创建文件
fs.writeFile('./html/html.txt',_txt,function(err){
if(err){
console.log(err);
}else{
console.log('创建文件成功!');
}
});
定义了一个_txt变量,放入到writeFile函数中去。这样它就可以在html.txt文件中写入新的内容了。同时这个函数也可以当做更新操作,把原文件内容重新定义。"增删改查",writeFile占据了3样功能,太喜欢这个方式了。
接下来不需这个文件的时候就需要删除操作,fs提供了一个方法
删除文件:unlink
//引入文件系统
var fs = require('fs'); //删除文件
fs.unlink('./html/html.txt',function(err){
if(err){
console.log(err);
}else{
console.log('删除文件成功!');
}
});
上面一套简单的流程走完,还有很多方法没有说,接下来一个个来:
能创建目录就能删除目录,
删除目录:rmdir (如果文件夹中存在单独文件,此操作会抛出异常)
//引入文件系统
var fs = require('fs');
//删除目录
fs.rmdir('./html',function(err){
if(err){
console.log(err);
}else{
console.log('删除目录成功!')
}
});
运行结果:

如果文件下还存在文件,抛异常,运行结果:

如果对文件不想任何有改动的操作,就只为读取,文件系统提供了readdir函数
读取目录或文件:readdir
//引入文件系统
var fs = require('fs');
//读取目录
fs.readdir('./index',function(err,data){
if(err){
console.log(err);
}else{
console.log('读文件成功!'+ data);
}
});
只读到文件夹层级,就会把此文件夹下的文件读取出来

读取到单独文件的运行结果:
readdir返回结果是以数组形式呈现
查看路径是否存在:exists
首先说明下我的工程目录,看截图

我要找一下当前目录是否存在的操作:
//引入文件系统
var fs = require('fs');
var _path = __dirname + "/klm";
//判断
fs.exists(_path,function(exist){
if(exist){
console.log(exist + "路径存在...");
}else{
console.log('目录路径不存在');
}
});
如果存在结果是布尔值true

在fs文件系统也提供了同步操作:writeFileSync(同步写入),readFileSync(同步读取),mkdirSync(同步创建),这里区别就是异步I/O和同步I/O,node.js主要运用异步I/O去处理,提高响应性能,对于同步I/O看什么场景需求了。
打开文件open:
这个方法有些特殊,它提供了几种参数方式。这些方式对于打开文件方式起到很重要的作用。
1. “r”已读取文件方式打开
2. "r+"已读写文件方式打开
3. "w"已写入方式打开,如果文件不存在则自动创建
4. “w+”已读写方式打开,如果文件不存在则自动创建
5. "a"已追加模式打开,如果文件不存在则自动创建
6. “a+”已读取追加模式打开,如果文件不存在则自动创建
例子:
//引入文件系统
var fs = require('fs');
fs.open('./index/aa.txt','r',function(open){
if(open){
console.log(open);
}else{
console.log('操作成功');
}
});
这段代码第二个参数就是设置打开模式用的。
node.js文件系统的更多相关文章
- Node.js文件系统、路径的操作详解
17173 17173 2 75 2014-12-12T05:06:00Z 2014-12-12T05:06:00Z 21 2735 15595 www.17173.com 129 36 18294 ...
- Node.JS文件系统解析
1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...
- Node.js 文件系统
Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...
- Node.js文件系统、路径的操作函数
Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...
- Node.js 文件系统fs模块
Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...
- 33.Node.js 文件系统fs
转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...
- Node.js 文件系统模块
章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...
- Node.js文件系统Api总结
//公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile(filename,[options ...
- Node.js 文件系统流pipe到Http响应流中
// 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); var fs=req ...
随机推荐
- express响应前端ajax请求
后端其实并不需要知道前端发起的请求是不是ajax,后端只需要响应请求即可.例子: 前端这样写: $('button').on('click', function(event) { event.prev ...
- 树形DP习题
听闻noip要考树形DP,本蒟蒻万分惶恐,特刷一坨题目,以慰受惊之心. codevs 1486 /*和非常出名的"选课"是一个题*/ #include<cstdio> ...
- poj1611(并查集)
题目链接:http://poj.org/problem?id=1611 题意: SARS(非典型肺炎)传播得非常厉害,其中最有效的办法是隔离那些患病.和患病者接触的人.现在有几个学习小组,每小组有几个 ...
- EF – 3.EF数据查询基础(下)数据关联
5.5.1 <关于“数据关联”,你不一定清楚的事> 这讲视频比较全面地介绍了“一对一”.“一对多”和“多对多”三种数据关联类型在关系数据库和Entity Framework数据模型中的实现 ...
- 重温WCF之构建一个简单的WCF(一)(1)通过控制台和IIS寄宿服务
一.理解什么是WCFWCF就是.NET平台下各种分布式技术的集成,并提供了一套统一的编程接口 二.WCF的定义WCF(Windows Communication Foundation)是微软为构建面向 ...
- 【译】Visual Studio 15 预览版更新说明
序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...
- 7-14 EXISTS子查询
EXISTS: 只注重于子查询是否有返回行,如果查有返回行返回结果为值,否则为假 并不使用子查询的结果,仅用于测试子查询是否有返回结果. 语法: IF EXISTS (子查询) BEGIN 语句块 E ...
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...
- jackson对多态or多子类序列化的处理配置
[TOC] Jackson Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 多态类型的处理 jackson允许配置多态类型处理, ...
- 10 个学习iOS开发的最佳网站(转)
10 个学习iOS开发的最佳网站 作者 jopen 2012-09-26 08:59:56 1) Apple Learning Objective C Objective-C,通常写作ObjC和较少用 ...