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文件系统的更多相关文章

  1. 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 ...

  2. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  3. Node.js 文件系统

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  4. Node.js文件系统、路径的操作函数

    Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...

  5. Node.js 文件系统fs模块

    Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX 文件系统操作. 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个 ...

  6. 33.Node.js 文件系统fs

    转自:http://www.runoob.com/nodejs/nodejs-module-system.html Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node ...

  7. Node.js 文件系统模块

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  8. Node.js文件系统Api总结

    //公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile(filename,[options ...

  9. Node.js 文件系统流pipe到Http响应流中

    // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http"); var fs=req ...

随机推荐

  1. Java返回距离当前时间段

    /** * 计算该时间离当前时间的差距 * @param time 格式为:yyyy-MM-dd HH:mm:ss * @return */ public static String getShort ...

  2. PHP中 字符串 常用函数

    //strpos    查找字符串中是否含有字符 $str='abcde'; $char='a':   if(strpos($str,$char) !==false){    echo '含有',$c ...

  3. Dubbo超时和重连机制

    dubbo启动时默认有重试机制和超时机制.超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认为此 ...

  4. Oracle数据库锁表及解锁进程

    下午代码迁移,更新数据库记录时for update语句无法执行,数据库被锁,KILL掉几个进程搞定. Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实 ...

  5. Delphi之DLL知识学习1---什么是DLL

    DLL(动态链接库)是程序模块,它包括代码.数据或资源,能够被其他的Windows 应用程序共享.DLL的主要特点之一是应用程序可以在运行时调入代码执行,而不是在编译时链接代码,因此,多个应用程序可以 ...

  6. rhel7初体验

    Redhat7界面明显比之前的版本华丽了不少,貌似Redhat对普通用户的使用也要进行普及 可以在安装的同时修改root密码和创建新用户

  7. php重修

    阅读顺序: http://www.laruence.com/2008/08/11/147.html  深入浅出php http://www.laruence.com/2008/06/18/221.ht ...

  8. 6-05使用SQL语句删除数据

    删除数据语法: DELETE  FROM 表名  WHERE  删除条件. TRUNCATE  TABLE 表名. --[1]基本删除,省略WHERE条件,将删除表中的所有数据 DELETE FROM ...

  9. WCF学习笔记之WCF初识

    这篇博客将介绍WCF的最基础内容,让我们对WCF有一个基本的认识.后续的博客中将会介绍WCF其他方面内容.本篇博客将通过一个简单的例子,介绍如何创建WCF服务,并承载这个服务,让客户端来访问它.下面请 ...

  10. Iphone [Tab Bar实现多view切换,Picker,DataPicter实现

    用Tab Bar Controller处理IPhone多个view切换, 而且还附有创建空项目,picker和DataPicker的实现! 具体步骤: 1.创建一个空项目,选择User Interfa ...